我正在构建一个CMS,并在实现新功能时遇到了麻烦。基本上,我的目标是让用户拥有菜单中存在的多个位置,并且当“用户”点击每个“位置”时,该页面上的部分将显示属于该位置的所有“标志”。 '并且只有属于那个'位置'的那些'标志'。数据模型非常直接:
class User < ActiveRecord::Base
has_many :restaurants, dependent: :destroy
end
class Restaurant < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
has_many :campaigns, dependent: :destroy
end
class Campaign < ActiveRecord::Base
belongs_to :restaurant
end
然而,在实现方面,我不知道如何使页面中的部分取决于用户选择的内容,然后仅显示相关内容。
目前我的用户show
为:
<% provide(:title, @user.name) %>
<div class="row">
<aside class="span4">
<section>
<h1>
<%= gravatar_for @user %>
<%= @user.name %>
</h1>
</section>
<section>
<% if @user.locations.any? %>
<div>
<%= link_to "Start a Campaign", newcampaign_path, class: "btn btn-medium btn-primary" %>
</div>
<%= link_to "Manage Locations", uploadlocations_path %>
<% else %>
<%= link_to "Upload Locations", uploadlocations_path, class: "btn btn-medium btn-primary" %>
<% end %>
</section>
<section>
<%# disply list of restaurants%>
<%= link_to "Add New Restaurant", newrestaurant_path, class: "btn btn-medium btn-primary" %>
<ul class ="campaigns">
<%= render @restaurants %>
</ul>
</section>
</aside>
<div class="span8">
<% if @restaurants.any? %>
<ol class="campaigns">
<%= render @campaigns, object: @restaurants %>
</ol>
<% end %>
</div>
</div>
用户可以在render @restaurants
的侧边菜单中点击特定餐厅,这将转到部分:
<ul>
<span class="content">
<%= link_to restaurant.name, '#' %>
</class>
</ul>
如何让用户点击菜单中的餐馆,并将选中的特定餐厅发回用户<%= render @campaigns, object: @restaurants %>
页面的show
?
答案 0 :(得分:0)
选择用户后的一种可能方式是
@restaurants = @user.restaurants
这就是你想到的
@campaigns = @restaurant.campaigns