我試圖圍繞這個來包裝我的頭,但似乎無法弄清楚。所以我有一個project
模型和client
模型的Rails應用程序。客戶端has_many
項目和項目belongs_to
。我創建了一個遷移到連接兩個表看起來像這樣:Rails - 在項目模型的索引頁面上顯示來自客戶端模型的數據
class AddClientsProjectsTable < ActiveRecord::Migration
def up
create_table :clients_projects do |t|
t.integer :client_id
t.integer :project_id
end
end
def down
drop_table :clients_projects
end
end
所有我想要做的是節目的一個項目所屬的客戶對項目的索引視圖,該項目內循環。我可以在項目的SHOW頁面上通過<% @project.clients.each do |client|%><%= client.name %><% end%>
和@project = Project.find(params[:id])
在項目控制器的show方法中輕鬆完成此操作。
但是,像這樣的實例變量添加到索引方法,然後試圖在<% @projects.each do |project| %>
循環內調用它是行不通的!
我至少知道數據正在保存正確,因爲我可以在顯示頁面上顯示項目的客戶端名稱,但我無法讓它顯示在索引視圖上。
如果有幫助,這是我如何分配一個項目,一個客戶端(通過項目索引頁進行):
<%= form_for @project, :html => { :multipart => true } do |f| %>
<% for client in Client.find(:all) %>
<%= check_box_tag "project[client_ids][]", client.id, @project.clients.include?(client) %>
<label><%= client.name %></label>
<% end %>
<%= f.submit %>
<% end %>
最後,這是我一直在玩周圍的代碼循環內的項目索引頁,以顯示該客戶端的每個項目被分配到:
<% Client.all do |client| %><%= client.name %><% end %>
它不工作!
你可以發佈你的模型? – codeit