0
我是Rails的新手,並試圖創建一個C2C市場應用程序,以瞭解rails如何工作並在稍後啓動一些真實項目。如何管理RoR中的嵌套關系?
這個想法是,用戶可以下令到其他用戶。訂單與用戶的打印機相關(您選擇用戶打印/訂購頁面)。打印機也有很多顏色可供打印
現在,我的堆棧非常基本。
我想在Orders控制器中的/訂單頁面上顯示擁有所有者名稱和顏色的所有打印機的列表。預先感謝您的任何想法,我怎麼能做到這一點
class User < ActiveRecord::Base
has_many :printers, dependent: :destroy
has_many :orders, dependent: :destroy
end
class Order < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
end
class Printer < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
validates :model, presence: true, allow_nil: true
has_many :materials, dependent: :destroy
end
訂單指數動作控制器(/訂單)
class OrdersController < ApplicationController
def index
@printers = Printer.all
end
end
而且index.html.erb
<% @printers.each do |p| %>
<div class="col-xs-9">
<div><%= "USERNAME HERE" %></div> <!--Do not know how to display parent's model here? -->
<div><%= p.model %></div> <!--Works fine-->
<div><%= p.colors.each do |c| c.color end %></div> <!--Display array instead of strings-->
</div>
<div class="col-xs-3">
<button>Order</button>
</div>
<% end %>
簡體schema.db
ActiveRecord::Schema.define(version: 20160627132435) do
create_table "colors", force: :cascade do |t|
t.string "color"
t.integer "printer_id"
end
create_table "orders", force: :cascade do |t|
t.string "price"
t.string "status"
t.integer "user_id"
end
create_table "printers", force: :cascade do |t|
t.string "model"
t.integer "user_id"
end
add_index "printers", ["user_id"], name: "index_printers_on_user_id", using: :btree
create_table "users", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
end
add_foreign_key "orders", "users"
add_foreign_key "printers", "users"
end
謝謝。 p.user.first_name運行良好。很容易)但顏色給我這個http://joxi.ru/a2XWXvZtMN4Nmg-任何想法,爲什麼這可能是? –
更新了修復的答案 – oreoluwa
太棒了。感謝您的幫助! –