Я использую Rails3 для создания простой страницы информации о клиентах (в табличном формате). На этой странице пользователь может редактировать подробную информацию о каждом клиенте. Каждый клиент может иметь несколько записей. Я использую link_to, чтобы попасть на страницу редактирования:
<td class="edit" id="edit">edit
<%= link_to 'edit', :action => :edit, :cust_id => ci.cust_id %>
</td>
edit.html.erb:
<h1>Editing cust</h1>
<%= form_for(@cust_info) do |cust| %>
Customer: <%= cust.text_field :cust_schema %>
<%= cust.submit "Save" %>
<% end%>
В моем контроллере у меня есть это:
def edit
cust_id = params[:cust_id]
@cust_info = CustInfo.find(:all, :conditions => ["cust_id = ?", cust_id])
end
Страница информации о клиенте отображается справа. Когда я нажимаю на ссылку редактирования, я получаю сообщение об ошибке:
ActionView::Template::Error (undefined method `cust_info_cust_info_path' for #<#<Class:0x7fb0857ce7b8>:0x7fb0857ca780>):
1: <h1>Editing cust</h1>
2:
3: <%= form_for(@cust_info) do |cust| %>
4: Customer: <%= cust.text_field :cust_schema %>
5: <%= cust.submit "Save" %>
6: <% end%>
app/views/track/edit.html.erb:3:in `_app_views_track_edit_html_erb___102324197_70198065248580_0'
Откуда взялась cust_info_cust_info_path?
РЕДАКТИРОВАТЬ: вот код в контроллере:
class TrackController < ApplicationController
def display
end
def information
end
def customerinfo
@cust_info = CustInfo.find(:all, :order=>"cust_id")
@cust_info.each do |ci|
if ci.upload_freq == 'W'
ci.upload_freq = 'Weekly'
elsif ci.upload_freq == 'M'
ci.upload_freq = 'Monthly'
end
end
end
def edit
cust_id = params[:cust_id]
@cust_info = CustInfo.find(:all, :conditions => ["cust_id = ?", cust_id])
end
конец
конец