为什么数据库的user_id列没有被填充?

时间:2012-10-13 01:21:44

标签: ruby-on-rails-3 rails-migrations

我在数据库中有一个名为pcomment的表。每个小部件都属于购买。购买has_many pcomments。另外,每个用户都有多个用户,每个用户都有一个用户。在数据库中,pcomments表有id / user_id / purchase_id / body / created_at / updated_at

除了user_id仍然是空白之外,所有内容都正确填写。我希望用当前登录用户的user_id(即正在创建pcomment的用户)填充它。)user_id和pcomment_id都在表中用add_index索引(在迁移期间)

以下是pcomment的表格

  <%= form_for([purchase, purchase.pcomments.build]) do |f| %>

    <div class="field">
      <h4>What deal are you offering?</h4>
      <%= f.text_field :body %>


    </div>


  <% end %>

这是pcomments_controller.rb

class PcommentsController < ApplicationController
  before_filter :signed_in_user
  def create
    @purchase = Purchase.find(params[:purchase_id])
    @pcomment = @purchase.pcomments.build(params[:pcomment])

    @pcomment.purchase = @purchase

    if @pcomment.save
       flash[:success] = "Offer submited!"
       redirect_to :back
    else
      render 'shared/_pcomment_form'
    end
  end

  def new
@pcomment=purchase.pcomments.new

  end


end

如果您需要更多代码,请访问https://github.com/tradespring1/tradespring/

1 个答案:

答案 0 :(得分:0)

这可能不是最好的方法,但是如果你已经定义了“current_user”方法,或者正在使用设计,你可以简单地在@pcomment.save之前放置@ pcomment.user_id = current_user.id / p>