Я хочу, чтобы получить идентификатор пользователя с видом трассировку связи в моем приложении Rails (2 уровня выше в отношении)Backtrace отношение в Rails 4
Мои модели
User.rb
has_many :printers, dependent: :destroy
has_many :orders
Printer.rb
belongs_to :user
has_many :orders
Order.rb
belongs_to :user
belongs_to :printer
has_many :messages, dependent: :destroy
На мой взгляд (/ заказы/показать) для одного ордена
Order ID: <%= @order.id %>
Printer ID: <%= @order.printer_id %>
Performer ID: <%= ???? %> <!-- I need the owner of the given printer ID above -->
Заказать показать действие простой
def show
@order = Order.find(params[:id]) #get current order
end
Так что я могу также просто получить идентификатор пользователя, потому что он было сделано через (идентификатор человека, разместившего заказ)
@order = current_user.orders.build(order_params)
И придумайте с этим Пользователь, получаю любые данные, которые мне нужны
@order.user.first_name
Но у меня есть идея, как я могу получить идентификатор владельца принтера в этом случае? Возможно ли это с моим типом модели или я должен реорганизовать все, что угодно, с has_many: через?
Любой ответ будет высоко оценен
схемы
create_table "orders", force: :cascade do |t|
t.integer "user_id" # this is an id of user who place the order
t.integer "printer_id" #this is and id of printer, which was ordered
end
create_table "printers", force: :cascade do |t|
t.integer "user_id" # this is the owner of printer - to which other user pass the order
end