当用户创建帖子时显示的电子邮件用户不是谁的帖子,而是登录的人。例如:user(1)登录anna@gmail.com,添加帖子,登出.user(2)登录maria@gmail.com并看到来自anna@gmail.com的帖子,但这篇帖子显示来自maria@gmail.com的电子邮件,这是错误的。
控制器
class PostsController < ApplicationController
def index
end
def create
@post = current_user.posts.build(post_params)
@post.name = current_user
if @post.save
redirect_to root_url
else
render 'static_pages/home'
end
end
def show
end
def destroy
end
private
def post_params
params.require(:post).permit(:title, :content)
end
end
视图
<% @posts.each do |post| %></br></br>
<tr>
<td><%= post.title %></td>
<td><%= post.content %></td>
<%= @post.user.email %>
</tr></br></br>
<% end %>
怎么修复? 抱歉我的英文不好
答案 0 :(得分:0)
在循环内部,您需要使用post
来引用当前的帖子实例,而不是@post
。变化
<%= @post.user.email %>
到
<%= post.user.email %>
您的代码还包含多个HTML错误(例如表格中没有td
和br
的元素...),您可能需要查看HTML指南。