Я пытаюсь реализовать ссылку "изменить", которая вызывает форму для изменения отображаемого атрибута на странице.
В моем макете:
<div id="company_info">
<%= yield :company_info %>
</div>
<div id="edit_company_info">
</div>
В моем представлении есть:
<%= content_for :company_info do %>
<%= render 'company_info' %>
<%= link_to "Edit", 'company_info_form', :class => 'btn btn-mini', :method => :get, :remote => true %>
Мой контроллер имеет:
def company_info_form
@company = Company.get(params[:id])
respond_to do |format|
format.js
end
end
Мой файл company_info_form.js.erb имеет:
$('#edit_company_info').html("<%= escape_javascript(render "company_info_form") %>");
После нажатия на ссылку мой сервер показывает:
Started GET "/companies/company_info_form" for 127.0.0.1 at 2012-03-12 20:19:13 -0700
Processing by CompaniesController#show as JS
Parameters: {"id"=>"company_info_form"}
Completed 500 Internal Server Error in 1ms
RuntimeError (Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id):
app/controllers/companies_controller.rb:9:in `show'
Так что я думаю, что это проблема маршрутизации, но я понятия не имею, как ее исправить.Как я могу получить параметр company_id, который находится на моей текущей странице, для распознавания по той части, которую я загружаю?
Я на /companies/1
, но ссылка на companies/company_info_form
, теряет параметр "company_id = 1"
.