Доступ к таблице соединений HABTM в представлении
Я работаю над созданием списков покупок в своем приложении и изо всех сил пытаюсь понять методы использования объединяющей таблицы, чтобы вернуть мои желаемые атрибуты inventory_item в мои представления. Я хочу вернуть эти атрибуты inventory_item в мои списки -: цена,: продавец,: имя,: детали,: бренд. У меня есть эти соответствующие модели:
Какова лучшая практика для работы с таблицей соединений, как это в представлении? Можете ли вы предложить простое тестирование консоли, чтобы ознакомиться с практикой? Заранее спасибо!
class InventoryItem < ActiveRecord::Base
belongs_to :item, :foreign_key => :item_id
belongs_to :vendor
has_and_belongs_to_many :shopping_lists
end
class Item < ActiveRecord::Base
has_many :inventory_items
has_many :vendors, through: :inventory_items
end
class ShoppingList < ActiveRecord::Base
has_and_belongs_to_many :inventory_items
belongs_to :user
end
class Vendor < ActiveRecord::Base
has_many :inventory_items
has_many :items, through: :inventory_items
has_many :shopping_list_items
end
class User < ActiveRecord::Base
has_many :shopping_lists
end
Благодаря @Grantovich я смог настроить свою таблицу соединений соответствующим образом:
class ListItemJoin < ActiveRecord::Migration
def change
create_table :inventory_items_shopping_lists, id: false do |t|
t.references :inventory_item
t.references :shopping_list
end
add_index :inventory_items_shopping_lists, :inventory_item_id
add_index :inventory_items_shopping_lists, :shopping_list_id
add_index :inventory_items_shopping_lists, [:inventory_item_id, :shopping_list_id], unique: true, :name => 'my_index'
end
end
Я новичок в RoR, поэтому любые замечания и предложения приветствуются, спасибо!
1 ответ
Вы можете сделать что-то вроде
<ul>
<% @shopping_list.inventory_items.each do |item| %>
<li><%= item.price %></li>
<li><%= item.vendor %></li>
<% end %>
</ul>
и так далее. То же самое, что и @vendor.items