我想将 id 从视图传递给控制器。我知道如何通过为它分配一个名称来传递它,例如::eid => @model["_id"]
。然后我可以使用params[:"_id"]
.
但随后 url 将是/create?:eid="1234"
. 但我想要这个:create/1234
。那我该怎么做
- 在视图中
- 如何在控制器中获取。
我想将 id 从视图传递给控制器。我知道如何通过为它分配一个名称来传递它,例如::eid => @model["_id"]
。然后我可以使用params[:"_id"]
.
但随后 url 将是/create?:eid="1234"
. 但我想要这个:create/1234
。那我该怎么做
这将需要一个自定义路线,例如:
post "/create/:eid" => "my_controller#my_action"
也就是说,将路由参数添加到创建操作是不寻常的。典型的方法只是向提交操作的表单添加隐藏输入。
您应该花一些时间了解路线。您需要定义一条路线来做您想做的事情。
在你的config/routes.rb
match '/create/:eid' => 'underscored_name_of_controller_here#create', :as => :create
那么,在你看来:
create_path(:eid => @model["_id"])
我还建议您的路线路径可能应该更具描述性,/create/:_id
但本着回答您的问题的精神,我将其保留下来。