タスクと優先順位の間に単純な 1 対多の関係があります。
class Task < ActiveRecord::Base
attr_accessible :subject, :body, :priority_id, :company_id, :status_id, :user_ids
has_and_belongs_to_many :users
belongs_to :priority
belongs_to :company
belongs_to :status
end
class Priority < ActiveRecord::Base
attr_accessible :name
has_many :tasks
end
私の tasks/show.html.erb ビューから
<%= @task.priority.name %>
これは機能します。
ただし、私のタスク/index.html.erbでは
<% @tasks.each do |task| %>
<tr>
<td><%= task.subject %></td>
<td><%= task.body %></td>
<td><%= task.priority.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 %>
task.priority.name の呼び出しが機能しません。
NoMethodError をスローします。
これは本当にばかげた初心者の間違いだと思いますが、私の人生ではそれを理解することはできません. アクティブ レコード マジックがフィルター処理されて、このような外観になると想定していたでしょう。