如何在用户和帖子之间建立关联?

时间:2011-07-15 19:02:30

标签: ruby-on-rails relational-database

我的user.rb中有has_many :posts, :dependent => :destroy,post.rb中有belongs_to :user,我的帖子迁移中有t.references :useradd_index :posts, :user_id,然后是我的路线。我有:

resources :users do
    resources :posts
end

如何制作以便当我以用户身份登录并发帖时,我可以使用user.posts并访问这些帖子?

2 个答案:

答案 0 :(得分:1)

respond_to :html

def index
  @posts = current_user.posts
end

def new
  @post = current_user.posts.new
end

def edit
  @post = current_user.posts.find params[:id]
end

def create
  @post = current_user.posts.new params[:post]
  @post.save
  respond_with @post
end

def update
  @post = current_user.posts.find params[:id]
  @post.update_attributes params[:post]
  respond_with @post
end

def destroy
  @post = current_user.posts.find params[:id]
  @post.destroy
  respond_with @post
end

答案 1 :(得分:0)

另一种方法是:

def create
  if current_user.posts.create!(params[:post])
    # success
  else
    # validation errors
  end
end

最重要的是,您希望帖子有一个名为user_id的外键,将其绑定到用户对象。通过current_user.posts...,它会自动将两者联系起来。