![](/img/trans.png)
[英]ActiveRecord::ReadOnlyRecord: ActiveRecord::ReadOnlyRecord
[英]Rails 3 scoped finds giving ActiveRecord::ReadOnlyRecord
我正在將Rails應用程序從2.3.10升級到3.0.4,並且在我的控制器中更新模型時遇到了問題。 我一直在“查找”模型查找,以防止用戶更新不屬於它們的對象。 它在2.3中按預期工作,但我在Rails 3中使用update_attributes得到一個ActiveRecord :: ReadOnlyRecord錯誤。
在Rails 3中執行此操作的正確方法是什么?
項目管理員:
def update
@project = current_user.projects.find(params[:id])
if @project.update_attributes(params[:project])
# saved
else
# not saved
end
end
事實證明,它與使用范圍來模擬活動記錄關聯有關。 我能夠通過向我的示波器添加.readonly(false)
來修復它。
一種可能的解決方案是創建新文件config / active_record_monkey_patch.rb並在其中添加以下內容。
module ReadOnlyFalse
def self.included(base)
base.class_eval do
def readonly?
false
end
end
end
end
ActiveRecord::Base.send(:include, ReadOnlyFalse)
以上代碼適用於所有模型readonly(false)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.