イベント コントローラーの show メソッドにいくつかの変更を加えようとしていますが、変更による違いがまったくないことに気付きました。@event = Event.find_by_slug(params[:slug]) 行をコメントアウトしましたが、表示ビューは引き続き機能し、エラーは発生しません! show メソッド全体を削除しても、まだ機能します。一瞬、アプリのコピーに取り組んでいると思ったのですが、間違いなく正しいものです。
以前はこの問題に遭遇したことはありませんでしたが、最近、Rails のバージョンを 3.2.0 から 3.2.13 にアップグレードしました。これを引き起こしているどこかにキャッシュ設定があるかどうか疑問に思っています。誰かが同様の経験をしたことがありますか、またはおそらくキャッシュ構成設定を探す場所についての指針を得ましたか?
編集 - コードが追加されました
def show
@event = Event.find_by_slug(params[:slug])
@meta_title = "#{@event.headline} at #{@event.venue.name}, #{@event.venue.town} - #{@event.event_date.to_date.to_formatted_s(:my_format)}"
@meta_description = "#{@event.info.to_s.truncate(380, :separator => " ")}"
@facebook_image = "#{@event.event_image.url(:large)}"
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @event }
end
end
ビューは非常に大きいですが、次のようなものを使用してフィールドを呼び出します。
<h2><%= @event.headline %> TEST</h2>
「TEST」は、それがレンダリングされるかどうかを確認するために追加したものです。そのため、アプリの正しいバージョンを確実に編集しています。
編集 - このバグを見つけるための新しい開発
だまされたアクションなどを広範囲に検索した後、私は徐々に原因を手動で見つけようとし始めました。まず、新しいモデルをスキャフォールディングし、同じ動作が発生するかどうかを確認します。次に、何が違うのかを見て、イベント コントローラーを上から下に見て、行/アクションをコメント アウトし、動作をテストし始めました。load_and_authorize_resource
とにかく、 CanCan gem を呼び出すために使用しているものとその機能モデルをコメントアウトすると、アプリが本来の動作をするようになりました。明らかに、ロールベースのコードがなくてもかまいません。
なぜCanCanがこれを引き起こしているのか、誰でも考えられますか?