На месте редактирования в Rails - PullRequest
0 голосов
/ 24 августа 2011

Я использую плагин Rais3 и in_place_editing .

Вот код контроллера:

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:

Называется id для nil, который по ошибке будет 4 - если вы действительно хотите идентификатор nil, используйте object_id

Вот стек заполнения .

Как я могу исправить эту ошибку?

1 Ответ

1 голос
/ 24 августа 2011

На самом деле, контроллер, вероятно, должен сказать

in_place_edit_for :contract, :title

, предполагая, что у вас есть модель контракта и вы хотите встроенное редактирование заголовка.Затем также необходимо изменить представление, чтобы отразить заголовок, а не имя для встроенного редактирования.Какое поле вы хотите редактировать inline (оба?)?

В соответствии с примером плагина:

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

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

EDIT

Изменитьпредставление имеет переменную экземпляра

<% @contract = contract %>
<%= in_place_editor_field :contract, 'name' %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...