【问题标题】:Rails 3 render layout in action causes error with Twitter BootstrapRails 3 渲染布局导致 Twitter Bootstrap 出错
【发布时间】:2012-04-27 07:32:16
【问题描述】:

我正在使用 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>

如果我把渲染拿走,页面会加载得很好。

【问题讨论】:

    标签: ruby-on-rails-3 twitter-bootstrap


    【解决方案1】:

    您渲染得太早了。试试这个:

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

    或者对于更可扩展的方法,请参阅this question and answer

    【讨论】:

      【解决方案2】:

      不要在view 方法的开头调用render。最后调用它。

      更新: 哦..在您的情况下,您应该在format.html { render ... } 中调用它。对不起。

      【讨论】: