Ruby on rails 如何将链接_中的可选参数传递给?
我有这样一个链接:Ruby on rails 如何将链接_中的可选参数传递给?,ruby-on-rails,Ruby On Rails,我有这样一个链接: <%= link_to 'something', some_path(:param1 => something, :param2 => something) %> something,:param2=>something)%> 如何使param2成为可选的?我想根据条件将其包括在内。尝试以下操作: 方法1 <%= link_to 'something', some_path( {:param1 => something}.merge
<%= link_to 'something', some_path(:param1 => something, :param2 => something) %>
something,:param2=>something)%>
如何使param2成为可选的?我想根据条件将其包括在内。尝试以下操作:
方法1
<%= link_to 'something', some_path(
{:param1 => something}.merge((x==1) ? {:param2 => something} : {}) %>
something}.merge((x==1)?{:param2=>something}:{})%>
方法2
<%= link_to 'something', some_path(:param1 => 1, :param2 => (2 if x==1)) %>
1,:param2=>(如果x==1,则为2))%>
在上面的示例中,当x等于1时,
param2
键值为nil。link\u to
方法忽略nil
值键。如果有许多基于条件的选项,我建议您在此处使用哈希:
<% params = {}
params[:param1] => "blah-blah" if condition
params[:param2] => "blah-blah" if condition
params[:param3] => "blah-blah" if condition
params[:param4] => "blah-blah" if condition
params[:param5] => "blah-blah" if condition %>
<%= link_to 'something', some_path(params) %>
“胡说八道”如果出现这种情况
参数[:param2]=>“诸如此类”如果条件
参数[:param3]=>“诸如此类”如果条件
参数[:param4]=>“诸如此类”如果条件
参数[:param5]=>如果条件%>
将其包装为助手是个好主意您也可以这样做:
<%= link_to 'something', some_path(:param1 => 'something', :param2 => ('something else' if some_condition)) %>
'something',:param2=>('something other'如果是某个条件))%>
谢谢。这非常优雅。我注意到@MrRuru
在我面前建议了方法2。