如何显示创建post rails的用户

时间:2013-11-10 16:36:34

标签: ruby-on-rails devise ruby-on-rails-4

我正在使用类别,用户(使用Devise进行身份验证),帖子在Rails上创建应用程序。如果用户会写帖子我想在他的帖子上面显示他的名字。当另一位用户观看帖子时,他会知道谁创建了此帖子。我怎样才能做到这一点? 机型:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  has_many :posts
end

class Post < ActiveRecord::Base
    belongs_to :user
    belongs_to :category
end

class Category < ActiveRecord::Base
    has_many :posts
end

控制器: PostController中

def show
        @post = Post.find(params[:id])
        @category = Category.find(params[:category_id])
    end

视图/帖/显示

<div class="container">
    <div class="post">
        <div class="row">
            <div class="col-md-6">
                <div class="price pull-right">
                <%= @post.price %>
                </div>
                <h3><%= @post.name %></h3>
                    <div class="content">
                        <%= @post.content %>
                    </div>
                <div>
                    <strong>Когда:</strong>
                    <%= @post.date %>
                </div>
            </div>
            <div class="col-md-6">
                <%= post.user.email%>
            </div>
        </div>
    </div>
</div>

<%= post.user.email%>

但它不起作用。

1 个答案:

答案 0 :(得分:2)

在您的观看结束时,您有post.user.email。您需要在那里使用@user实例变量。

          <div class="col-md-6">
              <%= @post.user.email%>
          </div>
      </div>
  </div>
</div>

<%= @post.user.email%>