2010-12-27 6 views
1

これは、lp.save行で起こっています。これは変わっています。なぜなら、link_pagesを再ソートするために同じコードを使用しているからです(少し違いますが)。Ruby on Rails:ActiveRecord:ReadOnlyRecordエラーを取り除くにはどうすればよいですか?

メニューバーとリンクページは、/方法も

@menu_bar.link_pages.each do |lp| 
     lp.sequence = LinkPage::NOT_USED 
     lp.save 
    end 

破壊しており、多くの関係

これはmenu_barであるに属しているあなた、ロードされた場合2.3.8

答えて

3

レールlink_pagesをARel:joinクエリ経由で実行すると、join to:includeを変更することで、おそらくエラーを取り除くことができます。

詳細な回答での同様の質問はanswered hereでした。

+0

私はしませんでした。 @menu_barは、link_pagesとのhabtm関係を持つアクティブなレコードです。 – NullVoxPopuli

+0

その場合、他の方法が見つからなければ、ARelクエリを使用するようにコードを変更してください。MenuBar.include(:link_pages).where(:id => paramsあなたのシナリオに合わせて変更してください – Scott

+0

私の最終的な試みは答えになりました - 私はこれと同じ 'ReadOnlyRecord'エラーを少し前に持ちました。私はソースコードを見直しました。 VendorStatus.joins(:order).where(:orders => {:code => order_code))。readonly(false).first再度、私は自分の問題を私のソースから修正したことを発見しました。同様の行に沿って作業するように独自のクエリを変更する必要がありますが、問題が解決する可能性があります。これはRails 3のコードであり、今日もなお動作しています。 – Scott

0

findオプションでreadonly => falseを使用することもできます。 https://stackoverflow.com/a/960903/327786

見てあなたは、少なくともレール2.3.15を使用する場合、それは動作します。

関連する問題