2010-07-28 15 views
5

Próbuję użyć jeditable z moimi aplikacjami 3 szyn. Chciałbym edytować niektóre pola w linii. W rzeczywistości działa ona po mojej stronie klienta, ale dane nie są aktualizowane w mojej aplikacji.Jedym i szynami 3

Czy możesz rzucić okiem? Z góry dziękuję!

mój widok:

<dt>Overview :</dt> 
<dd class="edit_textfield" id="<%= @project.id %>" name="overview"><%= @project.overview %></dd> 

mój kontroler:

def update 
    project = Project.find(params[:id]) 
    overview = params[:value] 
    project.save 
    render :text => params[:value] 
    end 

moi application.js:

$(".edit_textfield").each(function() {  
     $(this).editable('update', { 
      type : 'textarea', 
      cancel : 'Cancel', 
      submit : 'OK', 
      indicator : 'Saving...', 
      tooltip : 'Click to edit...', 
      rows  :  10, 
      method  :  "put", 
      submitdata : {id: $(this).attr('id'), name:$(this).attr('name') } 
     }); 
}); 

Dzięki kschaper, to działa.

Ale kiedy używam jeditable dla 2 pól na mojej stronie i że je edytuję, tylko jedna jest zapisywana. Szyny uwierzyć, że druga wartość jest 0

myślę, że problem pochodzą z mojego kontrolera:

def update 
    @project = Project.find(params[:id]) 
    @project.name = params[:name] 
    @project.overview = params[:overview] 
    @project.save 
    respond_to do |format| 
     format.js #{ render :text => params[:value] } 

    end 
    end 

Czy masz pojęcia?

+1

Całkowicie niezwiązane, ale jeditable jest niesamowitą nazwą;) – Nubsis

Odpowiedz

2

Czy przegląd atrybutem projektu? Następnie powinno być

@project.overview = params[:value] 
+0

Dzięki to działa !!!! To było takie podstawowe ...: oP – Fabien

0

Studiuję szyny niedługo, ale myślę, że produkt potrzebuje "@".

Jak to:

def update 
    @project = Project.find(params[:id]) 
    overview = params[:value] 
    @project.save 
    render :text => params[:value] 
end 

Może ...

+0

Dzięki rainisic, ale nadal jest taka sama ;-) – Fabien

0

FYI - Atrybuty ID muszą zaczynać się od litery. To, co masz na widoku, nie przejdzie weryfikacji. Będziesz musiał poprzedzić go jakimś tekstem w szablonach, a następnie rozebrać go w pliku application.js, zanim prześlesz go w przesłanych danych.