在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