I'm building a large application where I do everything exactly the same across most controllers and views. All of them have worked so far but now, I'm geting the strangest behaviour out of one. I am calling the same _form.html.erb that fails on either the new or edit action. I am certain my routes are built correctly but I seem to receive a message when I'm invoking the form object that it can't find the route?
NoMethodError in Evidence/etxcodes#edit
Showing evidence/etxcodes/edit.html.erb where line #5 raised:
undefined method `etxcode_path' for #<ActionView::Base:0x554bc6c>
Extracted source (around line #5):
2: 3: <%= error_messages_for :etxcode %> 4: 5: <% form_for(@etxcode) do |form| %> 6: <%= form.error_messages %> 7: 8:
Parameters:
{"account_id"=>"2", "id"=>"1"}
My edit method is pretty standard and is exactly like all the others
def edit @title = "Edit Transaction Code for: #{@account.name}" if current_user.evid_auth > MAX_CONTROL @etxcode = @account.etxcodes.find(params[:id]) else flash[:notice] = "You are not authorized to perform this task" redirect_back_or_default account_etxcodes_path(@account) return false end end
Actually the functional route that the form object should be using is edit_account_etxcode_path(@account, @etxcode). Could anyone recommend how they'd this curious problem? Thank you, Kathleen
P.S. All these other routes work correctly; map.resources :accounts, :controller => 'admin/accounts' do | account> account.resources :agencies, :name_prefix => "account_", :controller => 'evidence/agencies' account.resources :incidents, :name_prefix => "account_", :controller => 'evidence/incidents' account.resources :ecategories, :name_prefix => "account_", :controller => 'evidence/ecategories' account.resources :etxcodes, :name_prefix => "account_", :controller => 'evidence/etxcodes' account.resources :ecases, :name_prefix => "account_", :controller => 'evidence/ecases'