2014-06-15 33 views
1

我有问题,因为当我尝试使用形式,我得到错误unknown_attribute id_lekarza(与id_pacjenta相同,id_poradni),我不知道是什么原因,请大家帮忙 形式将数据添加到我的数据库:红宝石加入DB

<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 

回答

2

它看起来像你的belongs_to协会可能是你的问题。 Rails对于你期望命名的东西真的很有见地。如果你的模型属于医生(Refferal模型就是这种情况),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

祝你好运!

+0

谢谢,我已经迁移了这张表,并将外键更改为doctor_id,patient_id,现在可以工作:)非常感谢;) – smiaro

0

我不知道CL尽管如此,但我的猜测是ID可能只是作为参考。

尝试重命名字段;

id_lekarza, id_pacjenta , id_pracownika, id_poradni 

lekarza, pacjenta , pracownika, poradni