Как я могу получить доступ к атрибутам в has_many: через отношения? - PullRequest
2 голосов
/ 07 октября 2011

Как мне получить доступ к названию магазина здесь? @Deal экземпляр может получить идеальный доступ к имени товара, но когда я пытаюсь получить доступ к названию магазина, он дает мне

no method error 'stores'

Как мне получить экземпляр магазина для доступа к названию магазина? Вот код. Заранее спасибо

Контроллер

def show
   unless session[:city_id].nil? || session[:city_id].blank?
   @city = City.find(session[:city_id])
   @deal=@city.deals
   @store=@deal.stores
end

посмотреть / показать

<% @deal.each do |deal| %>
<%=deal.item_name %>
<%end%>

<%=@store.store_name %>

модель

class Store < ActiveRecord::Base
    has_many :deals ,:through =>:store_deals
    has_many :store_deals
end

class Deal < ActiveRecord::Base
    has_many :stores ,:through =>:store_deals
    has_many :store_deals
end

class StoreDeal < ActiveRecord::Base
    belongs_to :store
    belongs_to :deal
end

1 Ответ

2 голосов
/ 07 октября 2011

@ сделка, скорее всего, массив сделок. @ city.deals подразумевает, что вы можете заключить несколько сделок в одном городе. Это вызовет проблему при попытке сделать

@deal=@city.deals
@store=@deal.stores

попробуйте что-то вроде:

@deals = @city.deals
@stores = @deals.collect(&:stores)
...