【发布时间】:2014-11-03 13:32:33
【问题描述】:
我是 Rails 的新手,正在构建一个 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>
控制器为(虽然不正确):
def show
@user = User.find(params[:id])
@restaurants = @user.restaurants.paginate(page: params[:page])
@campaigns = @restaurants.first.campaigns.paginate(page: params[:page])
end
用户可以点击render @restaurants侧边菜单中的特定餐厅,然后转到部分:
<ul>
<span class="content">
<%= link_to restaurant.name, '#' %>
</class>
</ul>
目前此布局不起作用,因为我不知道如何将所选餐厅信息传递回显示页面的选项卡以显示所选餐厅的特定广告系列。如何让用户点击菜单中的餐厅,然后将选择的特定餐厅发送回用户show 页面中的<%= render @campaigns, object: @restaurants %>?
【问题讨论】:
标签: jquery ruby-on-rails partials