【问题标题】:Ruby adding to dbRuby 添加到数据库
【发布时间】:2014-06-15 21:30:23
【问题描述】:

我有问题,因为当我尝试使用表单将数据添加到我的数据库时,我收到错误 unknown_attribute id_lekarza(与 id_pacjenta 和 id_poradni 相同),我不知道为什么,请帮忙 表格:

<div id="container">

<%= form_for(@refferal) do |f| %>
  <div class="field">
    <%= f.label :rodzaj_badania %><br />
    <%= f.text_field :rodzaj_badania, placeholder: "Podaj jakie badanie ma byc wykonane", size: 35 %>
  </div>
  <div class="field">
    <%= f.label :ilosc_badan %><br />
    <%= f.number_field :ilosc_badan, placeholder: "Wpisz ilosc badan"  %>
  </div>
  <div class="field">
    <%= f.label :opis %><br />
    <%= f.text_field :opis, placeholder: "Podaj krótki opis dla pracownika rejestracji/laboratorium", size: 50%>
  </div>
  <div class="field">
    <%= f.label :data %><br />
    <%= f.datetime_select :data, placeholder: "Podaj termin badania"  %>
  </div>
  <div class="field">
    <%= f.hidden_field :id_lekarza, :value => Doctor.find(session[:current_doctor_id]).id %>
  </div>
    <div class="field">
    <%= f.hidden_field :id_pacjenta, :value => Patient.find(session[:current_patient_id]).id %>
  </div>
    <div class="field">
    <%= f.hidden_field :id_poradni, :value => Clinic.find(session[:current_clinic_id]).id %>
  </div>
  <div class="actions">
    <%= f.submit "Utwórz skierowanie" %>
  </div>
<% end %>
</div>

型号:

class Refferal < ActiveRecord::Base
  attr_accessible :data, :id_lekarza, :id_pacjenta, :id_poradni, :id_pracownika, :ilosc_badan, :opis, :rodzaj_badania
    belongs_to :patient
    belongs_to :employee
    belongs_to :clinic
    belongs_to :doctor

    has_many :laboratoria

end

架构:

  create_table "refferals", force: true do |t|
    t.string   "rodzaj_badania"
    t.integer  "ilosc_badan"
    t.string   "opis"
    t.datetime "data"
    t.integer "id_lekarza"
    t.integer "id_pacjenta"
    t.integer "id_pracownika"
    t.integer "id_poradni"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

【问题讨论】:

    标签: ruby-on-rails ruby dam


    【解决方案1】:

    看起来您的belongs_to 关联可能是您的问题。 Rails 对它希望你命名的东西非常固执己见。如果您的模型属于医生(Referal 模型就是这种情况),Rails 期望该属性被称为doctor_id

    试试这个:

    将属性名称从:id_lekarza 更改为:lekarza_id,以此类推。然后更改您的模型关联以指定这些属性所属的实际类:

    class Refferal < ActiveRecord::Base
      attr_accessible :data, :id_lekarza, :id_pacjenta, :id_poradni, :id_pracownika, :ilosc_badan, :opis, :rodzaj_badania  
    
      belongs_to :pacjenta, class_name: 'Patient'
      belongs_to :employee
      belongs_to :poradni, class_name: 'Clinic'
      belongs_to :lekarza, class_name: 'Doctor'
      has_many :laboratoria
    end
    

    此外,您可能希望将 has_many 关联更改为复数:has_many :laboratorias

    祝你好运!

    【讨论】:

    • 谢谢,我已经再次迁移了这个表,并将外键更改为医生 ID、患者 ID,现在可以使用了 :) 非常感谢 ;)
    【解决方案2】:

    我不清楚,但我怀疑 ID 可能是为参考而保留的。

    尝试从以下位置重命名字段;

    id_lekarza, id_pacjenta , id_pracownika, id_poradni
    

    lekarza, pacjenta , pracownika, poradni
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 2019-10-19
      • 2018-01-22
      • 2017-01-15
      • 1970-01-01
      相关资源
      最近更新 更多