【问题标题】:Rails render partial from controllerRails 从控制器渲染部分
【发布时间】:2013-10-14 12:27:56
【问题描述】:

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

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 放入文件夹布局/

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

【问题讨论】:

  • 将渲染代码放入index.html.erb
  • llayout 是视图,但它们有一些共同的 UI。通常,所有不同的布局都必须放在 app/views/layouts/ 下。部分 _check 和 _not_check 应该驻留在您的控制器视图中

标签: ruby-on-rails controller partial


【解决方案1】:

更好的方法是从 index.html.erb 调用部分

<% 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

我不明白您要做什么,但与控制器/动作相关的部分不应出现在布局中,除非它们正在提供某些布局。

【讨论】:

  • 请在您的答案中查看 ERB 和 Ruby。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 2015-04-04
    • 2013-02-15
    • 2015-08-29
    • 2014-11-02
    • 2014-03-31
    • 2015-08-01
    • 2013-08-18
    相关资源
    最近更新 更多