【发布时间】:2014-09-24 23:03:57
【问题描述】:
我正在尝试设置一个具有业务模型和类别模型的 Rails 应用程序。一个企业可以有多个类别,并且这些类别可以属于多个企业。
一切似乎工作正常,我没有收到任何错误,除非尝试显示与特定业务相关的类别时没有显示任何内容。
以下是我的模型、控制器和视图。这是我的第一个 Rails 项目之一,正在寻求帮助。
business.rb
class Business < ActiveRecord::Base
attr_accessible :category_id
belongs_to :category
end
category.rb
class Category < ActiveRecord::Base
attr_accessible :name, :description
has_many :businesses
end
business_controller.rb
def show
@business = Business.find(params[:id])
@categories = Category.where(:business_id => @business).all
respond_to do |format|
format.html # show.html.erb
format.json { render json: @business }
end
end
def new
@business = Business.new
@categories = Category.order(:name)
respond_to do |format|
format.html # new.html.erb
format.json { render json: @business }
end
end
def edit
@business = Business.find(params[:id])
@categories = Category.order(:name)
end
business/_form.html.erb
...
<div class="field">
<%= f.association :category, input_html: { class: 'chosen-select', multiple: true } %>
</div>
...
business/show.html.erb
...
<ul class="tags">
<% @categories.each do |category| %>
<li><%= category.name %></li>
<% end %>
</ul>
...
【问题讨论】:
-
您写的关于模型的内容与您使用代码显示的内容之间似乎存在冲突。您注意到一个企业可以有许多类别,并且一个类别属于一个企业。但是,您的模型与您编写的相反(一个业务属于一个类别,该类别有许多业务)。将有助于澄清哪种架构是正确的。
-
@craig.kaminsky 我想为一个企业分配多个类别。
标签: ruby-on-rails-3 associations categories