0
我建立一個應用程序,我有一個模型這樣如何創建和保存具有的has_many的模型/ belong_to協會
class Region < ActiveRecord::Base
attr_accessible :region_name
has_many :districts, dependent: :destroy
end
class District < ActiveRecord::Base
attr_accessible :district_name
belongs_to :region
has_many :counties, dependent: :destroy
validates :region_id, presence: true
end
我一直在增加使用DB /種子區和地區,像這樣
region1 = Region.find_or_create_by_region_name :region_name => 'Central'
district1 = region1.districts.create(district_name: 'Kampala')
現在,你可以想象這麼麻煩,所以我想創建一個簡單的表單,我可以添加一個區域並使用選擇菜單將其與正確的區域相關聯。
所以這個我區\ new.html.erb視圖
<div class="region">
<%= form_for (@district) do |f| %>
<%= f.label :region %>
<%= f.collection_select :region, Region.all,:id, :region_name, :prompt => "-- Select Region --" %>
<%= f.label :district %>
<%= f.text_field :district_name %>
<%= f.submit "Add District", class: "btn btn-large btn-primary" %>
<%end%>
</div>
這是因爲你希望不工作我區控制器創建方法
def create
@region = Region.find_by_region_name(params[:region_name])
@district = @region.districts.create!(params[:district])
if @district.save
redirect_to :districts_path, :notice => "District added"
else
render :new
end
end
此。對於rails來說是新的,所以我不確定如何正確執行它。我如何實現它?
如果使用的是選擇菜單,你不會是能夠從這種形式進入一個新的區域。這很重要嗎? – PinnyM
您收到了什麼錯誤?或者它不是保存區域/地區? – zeantsoi