我一直在使用Rails 3.0.5和Ruby 1.9.2,並且我注意到一個新記錄不會被保存或不能立即使用。Rails 3保存記錄問題
例如
def create
@some_record = Pool.new(params[:pool])
@some_record.users.push(current_user)
if params[:commit] == "Add More"
@some_record.save
@some_record.do_something
elsif params[:commit] == "Save"
do_something_else(params)
elsif params[:commit] == 'Cancel'
redirect_to user_url(current_user)
end
redirect_to some_other_url(current_user)
end
所以,當我保存記錄並調用some_record.do_something
保存對象無法提供即時的。 current_user.some_records
不包含新添加的記錄,但current_user.some_records.all
顯示新保存的記錄。但是在控制檯上,我可以用current_user.some_records
查看新創建的記錄。
我敢肯定,我遺漏了Rails 3的一些基礎知識。我也嘗試過與current_user.some_records.build(params[:some_record]
一樣的嘗試,並且遇到同樣的問題。 Rails 3是否立即保存對象,或者是否存在某種延遲寫入/保存,因爲Rails 3.0.3不會出現同樣的問題。
另外我沒有使用像authlogic/devise這樣的身份驗證插件,我只是將current_user對象保存到會話中。我不確定我做錯了什麼。我很感激任何幫助嗎?
它也有不少一對多some_record和用戶
對不起,我的錯誤很大。保存在推送到關聯數組後被調用。 – Sid 2011-03-27 10:40:48