Ruby on rails 如何为Rails中的部分参数提供默认值?
我需要渲染一个共享部分,它可以从多个视图接收一些参数,但我不想每次都传递所有参数。如果调用没有所有参数的模板,则会出现错误Ruby on rails 如何为Rails中的部分参数提供默认值?,ruby-on-rails,ruby,templating,Ruby On Rails,Ruby,Templating,我需要渲染一个共享部分,它可以从多个视图接收一些参数,但我不想每次都传递所有参数。如果调用没有所有参数的模板,则会出现错误 只有在调用render'name\u of_partial?时没有定义参数的默认值时,才有办法为参数定义默认值。在阅读文档和一些令人费解的内容后,我能够为未传递到模板的参数定义默认值 # in views/shared/template.html.erb <% my_param = 'default_value' unless binding.local_variab
只有在调用
render'name\u 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' %>
#在views/shared/template.html.erb中
#现在,您可以在设置或不设置'my_param'的情况下调用分部函数`
#现在您可以调用不带参数的分部函数。。。
#…或使用参数
使用Ruby 2.3.1及以上版本进行测试。这应该可以做到:
<% my_param ||= 'default value' %>
包含此内容的部分可以在提供或不提供
my_param
的情况下进行渲染。为什么需要所有这些?只要使用
就行了。@DannyB Damnit,你完全正确!为什么我没想到呢?如果你想提交答案而不是评论,我很乐意投票支持:-)酷,很高兴我能帮忙。