【发布时间】:2015-02-12 05:37:00
【问题描述】:
我在设置关联时遇到问题。我正在尝试将Courses 设置为具有不同的Prices,具体取决于Season 和alumns 的数量。当Seasons 对同一个Season 有不同的日期范围时,情况会变得更加复杂,例如第一个Season 是从 2014 年 12 月 24 日到 2014 年 12 月 31 日,也从 2015 年 1 月 7 日到2015 年 1 月 14 日。为此我创建了另一个模型Season_dates。
我不知道如何建立我的关联,这是我目前得到的:
class Season < ActiveRecord::Base
has_many :season_dates
has_many :prices, through: :season_dates
end
class SeasonDate < ActiveRecord::Base
belongs_to :price
belongs_to :seasons
end
class Price < ActiveRecord::Base
belongs_to :course
has_many :season_dates
has_many :seasons, through: :season_dates
accepts_nested_attributes_for :season_dates
end
class Course < ActiveRecord::Base
has_many :prices
end
表格:
<%= form_for @price do |f| %>
<div class="field">
<%= f.fields_for :couse do |course_f| %>
<%= course_f.label :course %><br>
<%= course_f.collection_select :course_id, Course.all, :id, :name, {}, {class: 'form-control'} %>
<% end %>
</div>
<div class="field">
<%= f.label :alumn %><br>
<%= f.number_field :alumn, in: 1...11, step: 1, class: 'form-control' %>
</div>
<div class="field">
<%= f.fields_for :season_date do |season_f| %>
<%= season_f.label :season %><br>
<%= season_f.select :season_id, options_from_collection_for_select(Season.all, :id, :name), {}, {class: 'form-control'} %>
<% end %>
</div>
<div class="field form-group">
<%= f.label :price %><br>
<%= f.number_field :price, in: 0.01..999.99, step: 0.01, placeholder: "0.00€", class: 'form-control' %>
</div>
<div class="actions">
<%= f.submit class: 'btn btn-default' %>
</div>
<% end %>
我希望能够致电price.season.name 或price.course.name。我不确定如何继续,感谢任何帮助。
【问题讨论】:
-
使用包含和通过关系
标签: ruby-on-rails ruby-on-rails-4 model-view-controller associations