如何通过Rails中的url将参数发送到另一个控制器的动作?
controller1:
def show
@controller1.id = params[:controller1_id]
end
在controller1的视图中:
%a.btn-general{:href => "/controller2/new/#{parameteroffirst.id}", :controller1_id @controller1.id, :role => "button"} Add the first
如何将controller1.id
发送到new
的{{1}}动作?
答案 0 :(得分:1)
如果您真的想这样写出来,请尝试更改:
:href => "/controller2/new/#{parameteroffirst.id}", :controller1_id @controller1.id
收件人:
:href => "/controller2/new?controller1_id=#{parameteroffirst.id}"
但是值得一读的是,链接应该如何在ruby / rails中工作:
https://api.rubyonrails.org/v5.2.1/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
答案 1 :(得分:0)
在Rails中的一个好习惯是使用命名路由而不是字符串url。
%a.btn-general{href: url_for(controller: :controller2, action: :new, id: parameteroffirst.id, controller1_id: @controller1.id), role: "button"} Add the first
它将生成类似/controller2/new/#{parameteroffirst.id}?controller1_id=#{@controller1.id}
的网址。但是明天您可以更改路线,而无需遍历代码来更改硬编码链接。