Я борюсь за то, чтобы мой первый group_by работал.
Модель имеет 4 стола
class Capstone < ActiveRecord::Base
has_many :capstone_milestones
has_many :milestones, :through => :capstone_milestones
end
class CapstoneMilestone < ActiveRecord::Base
belongs_to :milestone
belongs_to :capstone
end
class Milestone < ActiveRecord::Base
has_many :capstone_milestones
has_many :capstones, :through => :capstone_milestones
belongs_to :department
end
class Department < ActiveRecord::Base
has_many :milestones
attr_accessible :id, :name
end
Я хочу показать все вехи определенного отдела и сгруппировать их по замкнутому камню
Для этого я сделал это в контроллере моего отдела
def show
@department = Department.find(params[:id])
@milestones = Milestone.where("department_id = ?", params[:id] )
@capstones = @milestones.group_by { |m| m.capstones.name }
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @department }
end
end
и это на мой взгляд
<table>
<% @capstones.each do |capstone, milestones| %>
<tr>
<td colspan="2">
<%=link_to capstone.name, capstone_path(:id => capstone.id)%>
</td>
</tr>
<% for milestone in milestones %>
<tr>
<td witdth="10px"> </td>
<td> <%=link_to milestone.name, milestone_path(:id => milestone.id)%></td>
</tr>
<% end %>
<% end %>
</table>
Возвращает следующее сообщение об ошибке: "неопределенная локальная переменная или метод` name '"
Что не так? Спасибо!