小编Emi*_*che的帖子

Rails 3:在表单中传递belongs_to字段,无法批量分配受保护的属性

我有两个模型类,患者和处方,与belongs_to关系:

class Prescription
    belongs_to :patient
    ...
Run Code Online (Sandbox Code Playgroud)

我有一个用于创建新处方对象的表单,我希望它能从隐藏的字段中获取患者:

<%= form_for(@prescription) do |f| %>
...
  <%= f.hidden_field :patient_id, :value => @patient.id %>
...
Run Code Online (Sandbox Code Playgroud)

在处方控制器中,我想使用从表格中获得的参数创建一个新的处方:

  def create
    @prescription = Prescription.new(params[:prescription])
    ...
Run Code Online (Sandbox Code Playgroud)

有些东西不起作用.我可以在日志中看到患者id正在params中传递,但它没有插入到db中:

  Started POST "/prescriptions" for 127.0.0.1 at 2011-05-13 14:59:00 +0200
  Processing by PrescriptionsController#create as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"h3rizbBoW069EfvQf6NyzH53k+g4o4XO61jeZ/GF6t0=", "prescription"=>{"medicine_name"=>"w", "dispense_date(1i)"=>"2011", "dispense_date(2i)"=>"5", "dispense_date(3i)"=>"13", "days_supply"=>"2", "patient_id"=>"1"}, "commit"=>"Create Prescription"}
WARNING: Can't mass-assign protected attributes: patient_id
  Patient Load (0.2ms)  SELECT "patients".* FROM "patients" WHERE "patients"."id" IS …

ruby-on-rails-3

4
推荐指数
2
解决办法
5981
查看次数

标签 统计

ruby-on-rails-3 ×1