0

没有在 Rails 中更新的外键存在问题。

我有一个包含 3 个模型的应用程序。

用户、评论和评论。

用户有很多评论,评论有很多评论。当我添加新评论时,我想将 User_id 和 Review_id 添加到评论表中。

评论是从表单传递的。我在以下语句中更新了 user_id

    @comment = current_user.comments.build(params[:comment]) in the comment controller

除了作为foregin键的reviews_id之外,所有内容都被插入到评论表中。据我了解,这将通过模型中的关联自动完成。不是这种情况还是我的模型中缺少某些东西。

用户模型

    class User < ActiveRecord::Base
    attr_accessible :email, :name, :password, :password_confirmation
    has_secure_password

    has_many :microposts, dependent: :destroy
    has_many :reviews, dependent: :destroy
    has_many :comments, dependent: :destroy 

    end

评论模型

    class Review < ActiveRecord::Base
    attr_accessible :review_text, :tumb_up_down, :rating, :name
belongs_to :user
    has_many :comments, dependent: :destroy 

评论模型

    class Comment < ActiveRecord::Base
attr_accessible :comments, :review_id, :user_id
belongs_to :reviews 

评论控制器代码

    def create
    @comment = current_user.comments.build(params[:comment])

   if @comment.save
         redirect_to 'static_pages/home' #{:action => 'show', :id } 
    else
   redirect_to 'static_pages/home'
end

结尾

最后是传递值的形式。我是否应该在其中包括 review_id。

    <div class="field">
    <%= form_for(@comment) do |f| %>
    <%= render 'shared/error_messages', object: f.object %>

<%= f.label :comments %>
    <%= f.text_area :comments, placeholder: "Add your words of wisdom" %>

    </div>
    <%= f.submit "Add", class: "btn btn-large btn-primary" %>
    <% end %>
4

0 回答 0