小编Ale*_*der的帖子

添加对用户和帖子模型的评论(Ruby on Rails)

我是Rails的新手.我正在构建我的第一个应用程序 - 简单的博客.我有User和Post模型,每个用户可以写很多帖子.现在我想添加评论模型,每个帖子可以有很多评论,每个用户也可以评论任何其他用户创建的任何帖子.
在评论模型中我有

id \ body \ user_id \ post_id

列.
模型关联:
user.rb

has_many :posts,    dependent: :destroy
has_many :comments
Run Code Online (Sandbox Code Playgroud)

post.rb

has_many :comments, dependent: :destroy
belongs_to :user
Run Code Online (Sandbox Code Playgroud)

comment.rb

belongs_to :user
belongs_to :post
Run Code Online (Sandbox Code Playgroud)

那么如何在CommentsController中正确定义创建动作呢?谢谢.

更新:
routes.rb

resources :posts do
  resources :comments
end
Run Code Online (Sandbox Code Playgroud)

comments_controller.rb

  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(comment_params)
    if @comment.save
      redirect_to @post
    else
      flash.now[:danger] = "error"
    end
  end
Run Code Online (Sandbox Code Playgroud)

结果是

--- !ruby/hash:ActionController::Parameters
utf8: ?
authenticity_token: rDjSn1FW3lSBlx9o/pf4yoxlg3s74SziayHdi3WAwMs=
comment: !ruby/hash:ActionController::Parameters
  body: test
action: create
controller: comments
post_id: '57'
Run Code Online (Sandbox Code Playgroud)

我们可以看到它不会发送user_id,只有当我validates :user_id, …

ruby ruby-on-rails ruby-on-rails-4

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

ruby ×1

ruby-on-rails ×1

ruby-on-rails-4 ×1