Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何为Rails中的部分参数提供默认值?_Ruby On Rails_Ruby_Templating - Fatal编程技术网

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,你完全正确!为什么我没想到呢?如果你想提交答案而不是评论,我很乐意投票支持:-)酷,很高兴我能帮忙。