1
我正在處理after_save回調中的問題。我確信有一個簡單的解決方案,但我無法弄清楚。Rails回調after_save未設置屬性
我有3個型號:用戶,產品,出價。產品表包含布爾字段「available」,該字段默認設置爲true。如果用戶放置出價,則可用字段應設置爲false。 我認爲這應該與出價模型的回調一起工作。 我可以訪問並通過鍵入設置在控制檯中可用的字段: B = Bid.last b.product.available =假 =>假 但是我不能經由控制器改變它,所以我認爲它不不執行回調。我究竟做錯了什麼? 謝謝大家的幫助!
product.rb
class Product < ActiveRecord::Base
has_one :bid
belongs_to :user
end
bid.rb
class Bid < ActiveRecord::Base
attr_accessible :product_id, :user_id, :product
belongs_to :product
belongs_to :user
after_save :set_product_status
def set_product_status
self.product.available = false
end
end
bids_controller.rb
...
def create
@user = current_user
product = Product.find(params[:product_id])
@bid = @user.bids.build(product: product)
respond_to do |format|
if @bid.save
...
謝謝!這工作! 我發現,它也將與: product.available = false product.save 因此,它似乎也不需要「自我」的參考。 非常感謝您的幫助! – 2012-08-10 13:27:09