Rails 4,设计相关用户发布

时间:2013-12-10 10:42:58

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

我有Devise设置并可以创建帖子,但我想添加帖子创建者的用户名。 我错过了什么吗?

发布控制器:

def create
@post = current_member.posts.new(params[:post])


@post = Post.new(post_params)
respond_to do |format|
  if @post.save
    format.html { redirect_to @post, notice: 'Post was successfully created.' }
    format.json { render action: 'show', status: :created, location: @post }
  else
    format.html { render action: 'new' }
    format.json { render json: @post.errors, status: :unprocessable_entity }
  end
end

发布模型:

class Post < ActiveRecord::Base
belongs_to :member
end

成员模型:(我使用成员作为用户)

  class Member < 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

在show.html中,我不知道在buttom上放什么来显示用户名。我收到错误或者只是在我退出时显示所有帖子上的当前用户电子邮件,然后当然没有错误。

<p id="notice"><%= notice %></p>

 <p>
  <strong>Title:</strong>
  <%= @post.title %>
      </p>

  <p>
      <strong>Author:</strong>
      <%= @post.author %>
    </p>

     <p>
       <strong>Main:</strong>
     <%= @post.main %>
        </p>

           <%= current_member.email %>
          <%= link_to 'Edit', edit_post_path(@post) %> |
            <%= link_to 'Back', posts_path %>

1 个答案:

答案 0 :(得分:1)

我认为您不希望登录的成员/用户的电子邮件包含帖子,而是作者的电子邮件。尝试:@post.member.email