Rails - 在布局中产生部分

时间:2012-10-10 15:17:30

标签: ruby-on-rails-3

我认为这是一个非常简单的问题,我可能只是错误地解决它,因为我不熟悉rails,但是它在这里......

我想要做的是使用yield在我的应用程序布局中呈现部分视图的结果。我的页面顶部有一个搜索栏,我希望结果显示在布局的yield中。同样,我不确定这是否是正确的方法,所以如果不是,请告诉我最好的方法。

现在,当我尝试在我的页面上使用搜索时,出现“缺少模板事件/搜索”错误。如果我将以下代码添加到控制器,它可以正确获取所有信息,但不会在应用程序布局中呈现,它只显示部分:

render :partial => "events/search_results"

以下是相关部分控制器的外观:

layout "application"

def search
  @events = Event.search params[:search]
end

这是应用程序布局(请原谅格式化,我试着让它易于阅读):

 <!DOCTYPE html>
 <html lang="en">
 <head>
   <title>XXXXXXX</title>
   <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"type="text/javascript"></script> <![endif]-->
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 </head>
 <body>
    <div class="navbar navbar-top">
   <div class="navbar-inner">
    <div class="container">
             <%= render :partial => "events/search" %>
    </div>
   </div>
   </div>

<div class="container-fluid">
    <div class="row-fluid">
            <div class="span1">
            </br>
                <div class="well well-small">
                    <center><h3>Filters</h3></center> </br>
                    <%= render :partial => "events/left_severity_filter" %>
                    <%= render :partial => "events/left_date_filter" %>
                </div>
            </div>

        <div class="span8">
                         <%= yield %>
                    </div>
        <div class="span3">
                         <%= render :partial => "events/right_filter" %
        </div>
    </div>
</div>

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

您在视图中没有events/search.html.erb模板。创建此视图模板,它将显示在yield所在的位置。