5

Rails3アプリでjeditableを使用しようとしています。いくつかのフィールドをインラインで編集したいと思います。実際にはクライアント側で動作していますが、アプリでデータが更新されていません。

見ていただけませんか?前もって感謝します!

私の見解:

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

私のコントローラー:

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

私の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') }
        });
});

kschaperのおかげで、それは機能します。

しかし、ページの2つのフィールドにjeditableを使用して編集すると、1つだけが保存されます。Railsは2番目の値が0であると信じています

私は問題が私のコントローラーから来ていると思います:

  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

手がかりはありますか?

4

3 に答える 3

2

概要はプロジェクトの属性ですか? それならそうあるべき

@project.overview = params[:value]
于 2010-07-28T09:29:02.830 に答える
0

Rails の勉強は長くないのですが、製品には '@' が必要だと思います。

このような:

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

多分...

于 2010-07-28T08:38:27.213 に答える
0

参考までに -- ID 属性は文字で始める必要があります。ビューにあるものは検証に合格しません。テンプレートのテキストを先頭に追加し、送信データで送信する前に、application.js でそれを削除する必要があります。

于 2010-12-16T02:58:05.843 に答える