Ruby / Rails: только передать параметр, если условие истинно - PullRequest
1 голос
/ 23 марта 2011

У меня есть строка HAML, подобная этой:

%li{:id=>node.shortcode, :class=>liclass unless liclass.empty? }

, которая не работает.Я хочу передать параметр 'class' только в том случае, если указанное условие не соответствует действительности.Есть ли хороший способ сделать это в Ruby, мне просто нужно использовать if / else?

Ответы [ 3 ]

4 голосов
/ 23 марта 2011

Попробуйте это:

%li{({:id=>node.shortcode}.merge(liclass.empty? ? {} : {:class=>liclass}) )}

Это не красиво, но дает разметку, которую вы ищете.

1 голос
/ 23 марта 2011
%li{:id=>node.shortcode, :class=>(liclass unless liclass.empty?)}
0 голосов
/ 23 марта 2011

Не следует назначать класс, когда liclass будет пустым, но я не уверен.
Попробуйте это:
%li{:id=>node.shortcode, :class=>liclass }

...