【问题标题】:How to pass options with render partials如何使用渲染部分传递选项
【发布时间】:2015-07-05 05:18:32
【问题描述】:

有没有办法通过渲染部分传递选项?或者也许我需要设置一些本地人并检查他们?我糊涂了。我正在寻找这样的东西:

views/articles/_post.html.erb

<%= render partial: "shared/info" %>
<%#= SILLY GUESS: render partial: "shared/info", locals: { from_articles: true } %>

views/stories/_post.html.erb

<%= render partial: "shared/info" %>
<%#= SILLY GUESS: render partial: "shared/info", locals: { from_stories: true } %>

我该如何做这样的事情?

views/shared/_info.html.erb

<% if called from views/articles/_post.html.erb %>
  <p>Foo</p>
<% elsif called from views/stories/_post.html.erb %>
  <p>Bar</p>
<% end %>

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    params 哈希将始终包含:controller:action 键,但您应该使用controller_nameaction_name 方法来访问这些值。您有两种选择,但第二种方法更好。

    <% if params[:controller] == articles %>
      <p>Foo</p>
    <% elsif params[:controller] == stories %>
      <p>Bar</p>
    <% end %>
    

    <% if controller_name == articles %>
      <p>Foo</p>
    <% elsif controller_name == stories %>
      <p>Bar</p>
    <% end %>
    

    【讨论】:

    • 我喜欢那个声音!!
    • 是的。本来会更早接受的,但 SO 有 5 分钟的强制性时间限制。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多