在Rails中进行编辑

时间:2011-08-24 07:51:16

标签: ruby-on-rails

我正在使用Rais3和in_place_editing plugin

这是控制器的代码:

in_place_edit_for :name, :title

这是index.html.erb:

<% @contracts.each do |contract| %>
  <tr>
    <td><%= contract.name %></td>
    <td><%= contract.title %></td>
    <td><%= contract.content %></td>
    <td><%= link_to 'Show', contract %></td>
    <td><%= link_to 'Edit', edit_contract_path(contract) %></td>
    <td><%= link_to 'Destroy', contract, :confirm => 'Are you sure?', :method => :delete %></td>
    <td><%= in_place_editor_field contract, 'name' %></td>
  </tr>
<% end %>

我刚刚在视图中添加了一行:

    <td><%= in_place_editor_field contract, 'name' %></td>

我有nex错误代码:

  

如果你真的想要的话,被称为nil的id,这将错误地为4   nil的id,使用object_id

这是fill stack

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

实际上,控制器应该说

in_place_edit_for :contract, :title

假设您有合同模型并想要内联编辑标题。然后还需要更改视图以反映内联编辑的标题而不是名称。您想要内联编辑哪个字段(两者都是?)?

沿着插件示例:

# Controller
class ContractsController < ApplicationController
  in_place_edit_for :contract, :name
end

# View
<%= in_place_editor_field :contract, 'name' %>

修改

将视图更改为具有实例变量

<% @contract = contract %>
<%= in_place_editor_field :contract, 'name' %>