如何为 Rails 中的部分参数提供默认值?

How to provide defaults value for partial parameters in Rails?

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

有没有办法定义参数的默认值,只有在调用时没有定义参数的情况下才可以render 'name_of_partial

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

# 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 及更高版本进行测试。

这应该可以解决问题:

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

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