如何在不与模型关联的情况下添加选择?

时间:2013-03-03 19:29:03

标签: ruby-on-rails-3 activerecord simple-form

我有一个名为“Store”的模型,它有一个属性“City”,它有一个与之关联的“State”。我正在通过州和/或城市用simple_form创建商店的过滤器。问题是,如何使simple_form不将“State”与“Store”相关联?

class State < ActiveRecord::Base
  attr_accessible :name

  has_many :cities
end

class City < ActiveRecord::Base
  attr_accessible :name

  belongs_to :state
  has_many   :stores
end

class Store < ActiveRecord::Base
   attr_accessible :latitude, :longitude, :description, :city_id

   validates :city,        :presence => true
   validates :description, :presence => true, :length => {:maximum => 500}
   validates :latitude,    :presence => true
   validates :longitude,   :presence => true

   belongs_to :city
end


<%= simple_form_for @store, :html => { :class => 'add-store-form', :style => "display:none;" } do |f| %>
  <table border="0">
    <tr>
      <td>Estado:</td>
      <td>
        <%= f.collection_select :state, State.all, :include_blank => false, :label => false, 
                              :input_html => { :id => "state_id", :name => "state_id" } %>
      </td>
    </tr>
    .
    .

这种方式不起作用。 我怎么能这样做?

提前致谢!

1 个答案:

答案 0 :(得分:1)

这不是你问题的答案,而是通过以下方式改进你的代码:

validates :city, :latitude, :longitude, :description, presence: true
validates :description, length: {maximum: 500}

我建议使用Strong Parameters (Default in rails 4)来定义属性,可以从表单而不是attr_accessible选项中分配