0
我試圖讓工程師通過軍隊形式的複選框創建,但它不會被創建。複選框的名稱爲siege
,是我Army
模型的一部分:通過複選框創建關聯的資源
型號/ army.rb
class Army < ActiveRecord::Base
attr_accessible :siege
attr_reader :siege
validates_inclusion_of :siege, :in => [true, false]
has_many :engineers
def siege=(string_value)
@siege = (string_value == '1')
end
end
型號/ engineer.rb
class Engineer < ActiveRecord::Base
belongs_to :user
belongs_to :army
end
軍隊/ new.html.erb
<%= form_for @army do |f| %>
<%= f.check_box :siege %>
<%= f.submit "Create Army" %>
<% end %>
個
控制器/ armies_controller.rb
def new
@army = Army.new
end
def create
@army = current_user.armies.build(params[:army])
if @army.save
redirect_to new_army_path
else
render :new
end
end
end
型號/ army_observer.rb
class ArmyObserver < ActiveRecord::Observer
def after_save(army)
if army.siege
Engineer.new({ :user_id => current_user.id, :army_id => :army_id })
end
end
end
軍隊被創建,但工程師卻沒有。我的代碼中需要更正哪些內容才能啓用此功能?
別的東西,因爲我擺脫了'如果army.siege'和嘗試這兩種,它仍然還沒有生成。我也嘗試使'attr_accessible:army_id',但沒有好處。 – LearningRoR 2012-08-08 10:55:39
你檢查過,是否接到觀察者的電話? – PriteshJ 2012-08-08 10:56:27
不,它似乎沒有。 – LearningRoR 2012-08-08 10:59:45