有人可以向我解释下面的代码是做什么的吗?

时间:2017-07-06 07:38:24

标签: ruby-on-rails ruby

我正在研究Rails教程,我不知道是什么

@comment.article_id = params[:article_id]

正在代码中执行:

 def create
    @comment = Comment.new(comment_params)
    @comment.article_id = params[:arcticle_id]
    @comment.save
    redirect_to article_path(@comment.article)
 end

此外,params[:article_id]是否转移到左侧的实例变量中?

2 个答案:

答案 0 :(得分:1)

您需要了解Rails " Active Record Associations"

class Article < ApplicationRecord
  has_many :comments, dependent: :destroy
end

class Comments < ApplicationRecord
  belongs_to :article
end

当您在两个表之间创建has_manybelongs_to关系时,您需要在评论表中存储article.id,然后与该特定文章相关的评论。

在您的代码中:

def create
    @comment = Comment.new(comment_params)
    @comment.article_id = params[:arcticle_id]

    @comment.save

    redirect_to article_path(@comment.article)
end

您正在为文章创建评论,以便

  

@ comment.article_id = params [:arcticle_id]

它会将article.id存储在此评论中,以便此评论与该特定文章相关。

阅读Active Record Associations

答案 1 :(得分:0)

因为您正在使用关系数据库&#39; artical_id&#39;用于在注释和它所属的文章之间创建关系。

所以代码:

@comment.artical_id = params[:artical_id]

用于对评论文章ID进行评论,以便稍后再将其引用。

希望这个帮助