类别结构

时间:2009-10-24 02:29:00

标签: ruby-on-rails

我遇到了一些理论问题。

我有一个名为Promos的模型,我还有一个名为Categories的模型。

我希望管理员能够创建用户将在下拉列表中选择的集合类别以分配促销。所以Promos将属于一个类别,但是赋值应该在创建中发生。

推荐的结构是什么?

2 个答案:

答案 0 :(得分:0)

用户has_many一个促销,属于一个类别。 一个类别has_many promos。

如:

class User < Activerecord::Base
    has_many :promos

class Promo < Activerecord::Base
    belongs_to :user
    belongs_to :category

class Category < Activerecord::Base
    has_many :promos

答案 1 :(得分:0)

确保每个促销都有类别:

class Category < ActiveRecord::Base
  has_many :promos
end

class Promo < ActiveRecord::Base
  belongs_to :category

  validates_association_of :category
end

如何在促销创建时设置类别

promo = Promo.new(:category => @category)

就表格而言:

<% form_for :promo do |f| %>
  <%= f.collection_select :category_id, Category.all, :id, :name, :prompt => "Choose a category" %>
  ...
    Other promo fields
  ...
<% end %>

匹配控制器代码:

class PromosController < ActionController
  def create
    @promo = Promo.create(params[:promo])
    ...
      redirect or render whether @promo was successfully created
    ...
  end
end