У меня проблемы с доступом к правильной информации в моей модели рельсов (что я считаю правильным). Схема для моих таблиц:
create_table :schools do |t|
t.string :name
t.timestamps
end
create_table :variables do |t|
t.string :name
t.string :category
t.timestamps
end
create_table :data do |t|
t.string :entry
t.decimal :rank, :scale => 3
t.integer :school_id, :null => false
t.integer :variable_id, :null => false
t.timestamps
end
Модельные классы:
class Datum < ActiveRecord::Base
belongs_to :school
belongs_to :variable
end
class School < ActiveRecord::Base
has_many :data
has_many :variables, :through => :data
end
class Variable < ActiveRecord::Base
has_many :data
has_many :schools, :through => :data
end
вот моя школьная страница show.html.erb в настоящее время:
<h2> <%= @school.name %> </h2>
<table>
<% @school.variables.each do |variable| %>
<tr><tr/>
<td><%= variable.name %></td>
<td><%= Datum.find(:first, :conditions => {:school_id => @school.id, :variable_id => variable.id}).entry %></td>
<td><%= link_to 'Edit', edit_school_path(@school) %></td>
<td><%= link_to 'Back', schools_path %></td>
<% end %>
</table>
Он делает то, что я хочу, но он подходит для многих запросов. Я предполагаю, что я должен делать энергичную загрузку, но на основе примеров, которые я нашел в Интернете, я не мог понять, как это сделать (я действительно новичок в рельсах). У кого-нибудь есть идеи?