0
我有以下問題:Ruby on Rails中的數據模型中的mxn關係
我有三種不同的數據模型:客戶,期間和請求。一個請求由customer_id和periods_id組成(我不知道爲什麼它的periodS_id,因爲我生成了一個名爲period的腳手架)。現在,如果我想創建一個請求,我想選擇客戶和時間,這樣我的請求form.html.erb代碼:
<div class="field">
<%= f.label 'Kunde auswählen' %><br />
<%= f.collection_select :customer_id, Customer.all, :id, :name %>
</div>
<div class="field">
<%= f.label 'Zeitfenster auswählen' %><br />
<%= f.collection_select :periods_id, Period.all , :id, :description %>
</div>
,這工作得很好。我可以選擇客戶和peridos的名字,但這時如果我想創建一個請求,我得到錯誤信息undefinded方法,因爲他不能顯示在show.html.erb時期的名稱:
<%= @request.customer.name%>
<%= @request.periods.name%>
我的想法是數據模型中的一個錯誤。我不確定這個mxn關係是否有效。這裏的數據模型:
class Request < ActiveRecord::Base
validates :periods_id, :customer_id, presence: true
belongs_to :customer
belongs_to :period
end
class Period < ActiveRecord::Base
has_many :requests, :dependent => :destroy
has_many :customers, :through => :requests
end
class Customer < ActiveRecord::Base
has_many :requests, :dependent => :destroy
has_many :periods, :through => :requests
end
它適用於客戶:如果我刪除period.name,他可以顯示特定客戶的名稱。
任何想法?
我改period.name但你肯定請求可以有很多時間段或我認爲不對?在數據模型中我需要改變什麼? – Feidex
如果我'請求has_many時期'每個時期顯示爲'期間' – Feidex