1

デザインにtwitterブートストラップを使用しています。特定のアクションに別のテンプレートを使用したい

def view
  render :layout => 'single'
  @movie = Movie.find(params[:id])
   respond_to do |format|
  format.html # show.html.erb
  format.json { render json: @movie }
 end
end

レンダリングレイアウトをアクションに追加するとすぐに、このエラーメッセージが表示されます

undefined method `model_name' for NilClass:Class

 Extracted source (around line #2):

 1: <%- model_class = @movie.class -%>
 2: <h1><%=t '.title', :default => model_class.model_name.human %></h1>
 3: 
 4: <p>
 5:   <strong><%= model_class.human_attribute_name(:title) %>:</strong><br>

レンダリングを削除すると、ページが正常に読み込まれます。

4

2 に答える 2

2

レンダリングが早すぎます。これを試して:

 format.html { render :layout => 'single' }

または、よりスケーラブルな方法については、この質問と回答を参照してください。

于 2012-04-15T21:22:49.663 に答える
0

renderメソッドの先頭で呼び出さないでくださいview。最後にそれを呼び出します。

upd: ああ..あなたの場合、あなたはそれをで呼ぶべきですformat.html { render ... }。ごめん。

于 2012-04-15T21:22:13.540 に答える