在Rails中发布评论时显示用户电子邮件

时间:2014-11-16 15:33:54

标签: ruby-on-rails

当用户创建帖子时显示的电子邮件用户不是谁的帖子,而是登录的人。例如: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 %>  

怎么修复? 抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

在循环内部,您需要使用post来引用当前的帖子实例,而不是@post。变化

<%= @post.user.email %>

<%= post.user.email %>

您的代码还包含多个HTML错误(例如表格中没有tdbr的元素...),您可能需要查看HTML指南。