这可能很简单,但是我已经有一段时间没有接触过rails了,我不确定自3.2以来是否发生了这么大的变化
所以我有两个模型,报表和收据。每个报表都有许多收据,因此我的模型如下所示:
class Report < ActiveRecord::Base
has_many :receipts, :dependent => :destroy
accepts_nested_attributes_for :receipts, :allow_destroy => true
attr_protected :id
end
class Receipt < ActiveRecord::Base
belongs_to :report
attr_protected :id
validates_presence_of :vendor, :date, :description, :amount, :acctCode
end我的收据控制器位于控制器文件夹的根目录中,列出了所有的操作(它是由scaffold生成的)
我的路线有:
root :to => "index#index"
resources :reports do
resources :receipts
end我的link_to是这样的:
<%= link_to 'New Receipt', new_report_receipt_path, :class=>"btn btn-success" %>这给了我一个错误:
No route matches {:action=>"new", :controller=>"receipts"}我运行了rake路径,得到了以下结果:
report_receipts GET /reports/:report_id/receipts(.:format) receipts#index
POST /reports/:report_id/receipts(.:format) receipts#create
new_report_receipt GET /reports/:report_id/receipts/new(.:format) receipts#new
edit_report_receipt GET /reports/:report_id/receipts/:id/edit(.:format) receipts#edit
report_receipt GET /reports/:report_id/receipts/:id(.:format) receipts#show
PUT /reports/:report_id/receipts/:id(.:format) receipts#update
DELETE /reports/:report_id/receipts/:id(.:format) receipts#destroy怎么回事?
发布于 2012-12-28 05:34:15
您只是忘记了在您的路由中提供报告id。这取决于您在视图中访问报表的方式,但它必须类似于:new_report_receipt_path(@report)
发布于 2012-12-28 05:31:27
这不应该是:
new_report_receipts_path
?请注意s,即
link_to‘新收据’,new_report_receipts_path,:class=>"btn btn-success"
https://stackoverflow.com/questions/14061521
复制相似问题