我有一个rails应用程序,我想添加资产的附件,所以我希望能够调用http://localhost:3000/attachments/:asset_id/new,以便它会自动引入资产ID。我不知道如何在视图中配置它,虽然我认为我曾经一次做过。那我怎么能完成这个任务呢?
到目前为止,我认为这是正确的,将以下行添加到routes.rb:
match 'attachments/:asset_id/new'=>'attachments#new'
注意:这是一个Rails 3应用程序。
答案 0 :(得分:2)
你可以这样做RESTful方式:
resources :assets do
resources :attachments # this would give you localhost:3000/assets/:asset_id/attachments/new for your #new action
end
或非RESTful方式:
match 'attachments/:asset_id/new'=>'attachments#new', :as => "new_attachments_asset"
我推荐前者;)对于宁静的例子,你的附件#新动作可能是:
def new
@asset = Asset.find(params[:asset_id])
@attachment = @asset.attachments.build # assuming a has_many/belongs_to association
end
答案 1 :(得分:1)