2012-08-31 35 views
0

我尝试创建一个部分与我的车型之一的更新形式,但是当我运行服务器,并与部分浏览的页面,我得到一个奇怪的例外:回报率:不能更新模型

NoMethodError in Simpadmin/transactions#index 

Showing /home/ben/proj/Simplee/master/app/views/simpadmin/transactions/_transaction_actions.html.haml where line #17 raised: 

undefined method `payments_transaction_path' for #<#<Class:0x00000007bf1768>:0x00000007bceb00> 
Extracted source (around line #17): 

14: %span.refund-success= flash[:refund_success] 
15: 
16: .refund-edit 
17: = form_for transaction do |refund_form| 
18:  .refund-reason 
19:  = refund_form.label(:refund_reason, "Reason for refund:") 
20:  = select_tag(:refund_reason, options_for_select(possible_refund_emails), :class => 'refund-reason-select') 
Trace of template inclusion: app/views/simpadmin/transactions/_ 

item.html.haml, app/views/simpadmin/transactions/index.html.haml 

或许真的是错了我击溃(?) 我应该改变部分本身的东西?

编辑:路线不是由我写的。无论如何,这里是交易的路线部分:

resources :transactions, :only => [:index, :update, :show] do               
155  collection do                          
156   get :export                          
157   post :edit_cashed_checks                       
158   put :update_cashed_checks                       
159  end                             
160  member do                           
161   match :update_payee, :via => [:post, :put]                  
162   match :add_comment, :via => :post                     
163   put :refund                          
164  end                             
165  end  
+0

让知道路线文件内容请... –

+0

问题与路由,确保 –

+0

作为Sush说,路线现在会有所帮助。而且,最好知道'transaction'对象是什么类。我怀疑'PaymentTransaction'。 –

回答

1

当你正在使用的form_for并通过一些模型的对象,在这种情况下轨隐含假设行动,使用辅助函数被调用。 Rails使用xyzs_path帮助找出匹配的路由,其中​​XYZ是型号名称,其对象,我们传递给的form_for。这意味着应该有你的情况

resources :xyzs 

匹配命名的路由

match 'some_url' => 'some_controller#action', :as => 'xyzs' 

,你需要定义

resources :payments_transaction 

命名的路由

match 'some_url' => 'some_controller#action', :as => 'payments_transaction' 
+0

,你应该使用 命名空间:支付做 资源:交易 结束 –

+0

高兴,它帮助:),其实我一直在寻找为此,但你的问题驱使我朝着解决方案。 –

1

您尚未定义此表单的路由。你必须在你的路由文件中定义它是这样的:

resources :payments do 
    resources :transactions 
end 

欲了解更多信息,请参见Routing Guide

+0

我刚才编辑我的问题,并增加了部分航线可能 – benams