在Rails中的视图之间传递变量
我一直试图弄清楚如何在两个视图之间传递一个变量,我已经查看了堆栈溢出的所有示例,我似乎无法使其工作。
我在我的用户中有这个 – > index.html.erb
user.id %>
我正在尝试将user.id传递给我的人际关系 – > new.html.erb视图。
在我的控制器中我有:
class RelationshipsController < ApplicationController def new @id = params[:id] end end
最后我有关系 – > new.html.erb
Sign Up
我相信:id未正确传递。 我在其他所有例子中都缺少什么? 我没有错误,只显示没有任何内容。
这个
link_to 'Connect', new_relationship_path, :id => user.id
将:id作为html_option传递给link_to,因此它将用作link元素的“id”属性。 你想要的是将它作为参数传递给路径助手:
link_to 'Connect', new_relationship_path(:id => user.id)
如果用户具有一个或多个关系,则用户嵌套路由可能更智能。
然后,您将能够通过直接URL为特定用户创建关系。
例如:new_user_relationship_path(user)#=> / user / 2134 / relationship / new
然后在您的关系控制器中,params [:user_id]将评估为2134
你应该看看: http : //guides.rubyonrails.org/routing.html