У меня есть приложение для рельсов, и я хотел бы сделать что-то вроде task.labels.first.label_name
, чтобы получить имя метки задачи. Тем не менее, я получаю undefined method label_name
. Я сделал t = Task.first; t.labels.first.label_name
в консоли, и это сработало, поэтому я не уверен, что происходит. Вот модели, то места расположения ошибки:Доступ к атрибутам во многих-ко-многим
class Categorization < ActiveRecord::Base
belongs_to :label
belongs_to :task
end
class Label < ActiveRecord::Base
attr_accessible :label_name
has_many :categorizations
has_many :tasks, :through => :categorizations
end
class Task < ActiveRecord::Base
attr_accessible :task
has_many :categorizations
has_many :labels, :through => :categorizations
end
Ошибка в индексе
<% for task in @tasks %>
<tr>
<td><%= task.task %></td>
<td><%= task.labels.first.label_name %></td>
<td><%= link_to "Show", task %></td>
<td><%= link_to "Edit", edit_task_path(task) %></td>
<td><%= link_to "Destroy", task, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>