Rails从控制器渲染部分

时间:2013-10-14 12:27:56

标签: ruby-on-rails controller partial

我试图从控制器中将不同的部分渲染到我的索引视图中,具体取决于我收到的参数。 我的控制器中有一个简单的除非条件来检查参数

def index
 unless params[:check].nil?
  render :partial => /layout/check
 else
  render :partial => /layout/not_check
 end
end

我将文件_check.html.erb和not_check.html.erb放入文件夹布局/

现在,如何在索引视图中显示部分内容? 目前,我可以将部分单独显示为单个视图,但不能在请求的视图中显示。

2 个答案:

答案 0 :(得分:4)

更好的方法是从index.html.erb

调用partials
<% unless params[:check].nil? %>
  <%= render :partial => '/layout/check' %>
<% else %>
  <%= render :partial => '/layout/not_check' %>
<% end %>

所以你的def索引看起来像这样

def index
  respond_to do |format|
    format.html
  end
end

我不明白你想要做什么但是与控制器/动作有关的部分不应该在布局中,除非他们正在提供一些布局。

答案 1 :(得分:0)

如果您尝试渲染布局(而非实际视图信息),请尝试使用render layout

def index
  if params[:check].nil?
    render layout: "not_check"
  else
    render layout: "check"
  end
end