Ruby on rails 如何通过rails中的url将参数发送到另一个控制器的操作?

Ruby on rails 如何通过rails中的url将参数发送到另一个控制器的操作?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,如何通过rails中的url将参数发送到另一个控制器的操作 控制员1: def show @controller1.id = params[:controller1_id] end %a.btn-general{:href => "/controller2/new/#{parameteroffirst.id}", :controller1_id @controller1.id, :role => "button"} Add the first 在控制器1的视图中: def

如何通过rails中的url将参数发送到另一个控制器的操作

控制员1:

def show
  @controller1.id = params[:controller1_id]
end
%a.btn-general{:href => "/controller2/new/#{parameteroffirst.id}", :controller1_id @controller1.id,  :role => "button"} Add the first
在控制器1的视图中:

def show
  @controller1.id = params[:controller1_id]
end
%a.btn-general{:href => "/controller2/new/#{parameteroffirst.id}", :controller1_id @controller1.id,  :role => "button"} Add the first

如何将
controller1.id
发送到
controller2
new
操作?

如果您确实想这样写出来,请尝试更改:

:href => "/controller2/new/#{parameteroffirst.id}", :controller1_id @controller1.id
致:

但关于链接在ruby/rails中应该如何工作,这确实值得您阅读:


rails中的一个良好实践是使用命名路由而不是字符串URL

%a.btn-general{href: url_for(controller: :controller2, action: :new, id: parameteroffirst.id, controller1_id: @controller1.id), role: "button"} Add the first

它将生成一个url,如
/controller2/new/#{parameteroffirst.id}?controller1_id=#{@controller1.id}
。但是明天您可以更改路线,而无需更改硬编码链接。如果有人单击
anchor
tag,您似乎正在尝试在
controller2#new
中获取id?是的,我需要controller2的新操作中controller1的参数:href=>“/controller2/new?controller1_id”=#{parameteroffirst.id},:role=>“按钮”它不工作