无法将帖子关联到Devise用户

时间:2014-04-27 12:57:07

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

我很难将帖子与在设计中注册的用户相关联。

我生成了一个帖子脚手架,并在Devise中正确设置了所有内容。 我添加了一个迁移到包含user_id字段的帖子

用户模型has_many :posts 帖子模型belongs_to :user

出于某种原因,我无法将用户与帖子连接起来。我错过了什么吗?

谢谢大家!

我的帖子控制器

def create

@user = User.find(params[:id])
@post = @user.posts.create(params[:post])


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

1 个答案:

答案 0 :(得分:2)

首先,您需要用户关联帖子:

@user = User.find(params[:id]) # or just use current_user as you are using Devise

只要您拥有has_many关联,就可以执行以下操作:

@post = @user.posts.build(params[:post]) # to return newly created object without saving it to the database
@post = @user.posts.create(params[:post]) # to create and save record to the database

那就是它。