【问题标题】:How to provide defaults value for partial parameters in Rails?如何在 Rails 中为部分参数提供默认值?
【发布时间】:2019-01-15 17:04:41
【问题描述】:

我需要渲染一个可以从多个视图接收一些参数的共享部分,但我不想每次都传递所有参数。如果我在没有所有参数的情况下调用模板,则会出现错误。

有没有办法为参数定义默认值,只有在调用render 'name_of_partial时没有定义它们?

【问题讨论】:

    标签: ruby-on-rails ruby templating


    【解决方案1】:

    这应该可以解决问题:

    <% my_param ||= 'default value' %>
    

    可以在提供或不提供my_param 的情况下呈现包含此内容的部分。

    【讨论】:

      【解决方案2】:

      在阅读了文档之后,有些摸不着头脑,我能够为未传递给模板的参数定义默认值。

      # in views/shared/template.html.erb
      <% my_param = 'default_value' unless binding.local_variable_defined?(:my_param) %>
      # Now you can call the partial with or without setting `my_param`
      
      # Now you can call the partial without parameters...
      <%= render 'shared/my_template' %>
      # ...or with parameters
      <%= render 'shared/my_template', my_param: 'non-default value' %>
      

      使用 Ruby 2.3.1 及更高版本进行测试。

      【讨论】:

      • 你为什么需要这一切?只需使用&lt;% my_param ||= 'default value' %&gt; 即可。
      • @DannyB Damnit,你说得对!为什么我没有想到呢?如果您想提交答案而不是评论,我很乐意投票:-)
      • 酷,很高兴我能帮上忙。
      猜你喜欢
      • 1970-01-01
      • 2014-02-01
      • 2012-09-27
      • 2014-11-03
      • 2014-09-18
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多