我遇到了一个问题...... 我正在建立一个网站的主页,并尝试将有关用户,消息,location_infos bla bla bla的信息集成到同一页面中(使用jquery和ajax)......
在PHP或JSP中,我认为这样的页面很容易制作(将所有这些函数划分为不同的服务并构建一个主页来加载它们),但在Rails 3中,我发现实际上我只能将@user呈现给模型是“用户”的视图,如果模型是“User_group”,则只有@user_group ...
好吧,我使用'has_many,belongs_to,has_one'来组织其中一些模型。 (这样我就可以使用像user.user_groups.each这样的变量了)但实际上总有一些不同的东西,我认为声称这两个模型有连接是不恰当的,例如在位置和用户之间...所以在这环境,如何在某个视图页面中引用其他模型的变量?或者这是非常有害的,我真的必须避免,以便我可能不会认真打破RESTFul页面样式?
这是我的代码:
Class UsersController< ApplicationController
def home
if session[:current_user_id]==nil
redirect_to :action=> "login"
else
@user =User.find(session[:current_user_id])
respond_to do |format|
format.html
format.json {render json: @user}
end
end
end
end
所以在users / home.html.erb
中@user.XXX
这样的代码来生成内容但如果我按如下方式重写方法:
def home
if session[:current_user_id]==nil
redirect_to :action=> "login"
else
#here \\\
@user_2=User.find(session[:current_user_id])
respond_to do |format|
format.html
format.json {render json: @user}
end
end
end
我发现无法在users / home.html.erb
中调用@ user_2如果我在UsersController中添加更多内容:
@ USER_GROUP = User_group.find(会话[:current_user_id])
我发现我不能像@user_group
一样呈现format.html {render @user_group}
而且我也无法获得users / home.html.erb中的@user_group
答案 0 :(得分:0)
我不太明白你在问什么,但我认为你可能希望发送的不只是@user到视图。您想发送@user_group,@ user_location等。这是正确的吗?如果是这种情况,那么您不必使用渲染作为'format'语句来在视图中使用模型变量,只需像您一样定义它们。
如果这是关于获得关系的问题,您可以获得User.locations或User.groups。如果您的模型设置正确,这些将返回您的用户位置和组的列表。