Ruby on rails 如何通过rails中的url将参数发送到另一个控制器的操作?
如何通过rails中的url将参数发送到另一个控制器的操作 控制员1: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
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=>“按钮”它不工作