rails从URL获取参数

时间:2011-07-15 14:54:05

标签: ruby-on-rails ruby-on-rails-3

我有一个rails应用程序,我想添加资产的附件,所以我希望能够调用http://localhost:3000/attachments/:asset_id/new,以便它会自动引入资产ID。我不知道如何在视图中配置它,虽然我认为我曾经一次做过。那我怎么能完成这个任务呢?

到目前为止,我认为这是正确的,将以下行添加到routes.rb:

 match 'attachments/:asset_id/new'=>'attachments#new'

注意:这是一个Rails 3应用程序。

2 个答案:

答案 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)