Ruby On Rails - 无法通过关联为新对象分配属性

时间:2013-12-17 02:12:41

标签: ruby-on-rails-3

我对rails很新,在创建带关联的新对象时遇到问题。我有3个对象:用户,工作,出价。出价属于用户并属于作业。作业和用户都有很多出价。我的问题是,当我尝试使用参数中的出价哈希创建新出价时,不会更新任何出价属性。

class Bid < ActiveRecord::Base

belongs_to :job
belongs_to :user

attr_accessor :pay_type, :rate, :comment
attr_protected :user_id, :job_id

end

在出价控制器创建操作中,params [:bid]产生以下结果:     {“pay_type”=&gt;“HOURLY”,“rate”=&gt;“88”,“评论”=&gt;“出价测试”}

但如果我尝试

@bid = Bid.new(params[:bid])

@bid =

<Bid id: nil, pay_type: nil, rate: nil, comment: nil, user_id: nil, job_id: nil>

我也试过

@job.bids.build(params[:bid])

但是唯一分配的出价属性是job_id:

<Bid id: nil, pay_type: nil, rate: nil, comment: nil, user_id: nil, job_id: 4>

任何方向都会非常感激。如果我应该提供更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为您要使用attr_accessible而不是attr_accessor,因为您要尝试的是通过质量分配设置这些参数。

查看attr_accessible文档,详细了解其工作原理。此外,请记住,您需要确保您的应用程序不受大规模分配漏洞的影响 - 只需仔细按照文档进行操作即可。您应该没问题。