-2

快速提问:我想在视图中显示用户名(在我的情况下是电子邮件)而不是用户 ID,我在视图中编写了以下代码:

<%= User.find(post.user_id).Email %>

但是不要破坏我的MVC协议,我应该把这段代码移到一个模型中吗?

4

1 回答 1

1

首先,您不能像这样使用大写的电子邮件 - 您需要调用方法(小写)电子邮件而不是类名。

<%= User.find(post.user_id).email %> 

您可能想在控制器中找到 @user = User.find(@post.user_id) 然后您可以在视图中执行 @user.email ......甚至更好地在控制器中设置 @user_email 。您不应该真正从视图中调用模型。您的控制器应该与模型对话并将数据传递给视图。

所以,在控制器中是这样的:

@post = Post.find(params[:id])
@user_email = @post.user.email 

然后在视图中你可以做

<%= @user_email %>
于 2013-03-26T05:24:34.177 回答