2
我有两个定义页面内容(adtype)的导航栏(展示位置& ad)。第一个导航栏位置始终在顶部可见。第二个导航栏ad将根据在展示位置顶部选择的属性在页面的左侧呈现。模型放置&模型广告具有多对多的关系。如何根据顶部导航栏中选择的属性在HTML中呈现第二个导航广告?渲染关联数据(has_many,:through) - Rails
两个导航机型有:
class Placement < ActiveRecord::Base
attr_accessible :placementname
has_many :adtypes, :foreign_key => "placement_id"
has_many :ads, :through => :adtypes
end
class Ad < ActiveRecord::Base
attr_accessible :adname
has_many :adtypes, :foreign_key => "ad_id"
has_many :placements, :through => :adtypes
end
下面是内容,adtype,详情模式,即要看是什么属性的导航栏进行选择:
class Adtype < ActiveRecord::Base
attr_accessible :adtype_screenshot, :location, :placement_screemshot, :specs
belongs_to :placements
belongs_to :ads
end
这里是我的架构数据库:
ActiveRecord::Schema.define(:version => 20121127052112) do
create_table "ads", :force => true do |t|
t.string "adname"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "adtypes", :force => true do |t|
t.integer "placement_id"
t.integer "ad_id"
t.string "location"
t.string "placement_screenshot"
t.string "adtype_screenshot"
t.string "specs"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "placements", :force => true do |t|
t.string "placementname"
t.datetime "created_at"
t.datetime "updated_at"
end
end
这里是我的routes.rb文件:
resources :placements do
resources :ads do
resources :adtypes do
end
end
end
这里是我如何使我的顶部导航(_navigation.html.erb),并且每个属性链接到一个新的URL,与位置ID(HTTP://本地主机:3000 /展示位置/ 2)结束
<% Placement.all.each do |placement| %>
<li ><%= link_to placement.placementname, placement_path(placement.id) %> </li>
<%end%>
哪些控制器操作需要呈现_ad_导航栏?它只是“展示位置#show”还是应该是整个网站的标准模板? – Geoff
它应该是整个网站。虽然我刚找到解决方案。首先,我错误地使用了这些复数: belongs_to:展示位置 belongs_to:ads 所以我刚刚摆脱了's'并以这种方式呈现了我的广告(广告视图展示): <%@ placement.ads.all .each do | ad | %>
对不起,我应该抓住那个。您可能想要创建一个答案并接受它。 – Geoff