如何通过关系访问 has_many 中的属性?

发布于 2024-12-08 20:28:05 字数 1194 浏览 3 评论 0原文

我如何在这里访问商店名称?@deal 实例可以完美访问商品名称,但是当我尝试访问商店名称时,它给了我

no method error 'stores'

如何获取商店实例来访问商店名称?这是代码。提前谢谢您

控制器

def show
   unless session[:city_id].nil? || session[:city_id].blank?
   @city = City.find(session[:city_id])
   @[email protected]
   @[email protected]
end

视图/展示

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

<%[email protected]_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

How do i access store name here?@deal instance can access perfectly item name,but when i try to access store name it gives me

no method error 'stores'

How do i get store instance to access store name?Here is the code.Thank you in advance

controller

def show
   unless session[:city_id].nil? || session[:city_id].blank?
   @city = City.find(session[:city_id])
   @[email protected]
   @[email protected]
end

view/show

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

<%[email protected]_name %>

models

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

塔塔猫 2024-12-15 20:28:06

@deal 很可能是一系列交易。 @city.deals 意味着您可以在每个城市有多个交易。 时,这会导致问题:

@[email protected]
@[email protected]

当您尝试执行以下操作

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

@deal is most likely an array of deals. @city.deals implies you could have multiple deals per city. This wil cause a problem when you try to do

@[email protected]
@[email protected]

try something like:

@deals = @city.deals
@stores = @deals.collect(&:stores)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文