2009-12-09 4 views
2

Я использую button_to и link_to формы помощников в Rails. Мне нужно установить атрибут html на основе условия в коде. Точнее, мне нужно отключить компонент button_to только в том случае, если определенное условие истинно.Использование условий в форме Помощники Rails

Как я могу это достичь? фрагмент кода ниже.

<%= button_to "Submit", "#", :id=> "submit", :class => "button_white_big", :disabled => true%> 

В приведенном выше описании мне может понадобиться: disabled => true или мне может не понадобиться. Есть ли чистый способ, кроме дублирования строки кода?

Приветствия -Priyank

ответ

7

Вы можете заменить «истинный» в инвалидов с условием (действительно любое выражение, которое возвращает логическое значение), чтобы получить необходимую функциональность. Как это:

<%= button_to "Submit", "#", :id=> "submit", :class => "button_white_big", :disabled => obj.disabled? %> 

или

<%= button_to "Submit", "#", :id=> "submit", :class => "button_white_big", :disabled => x == y %> 

и т.д.

2

Что такое условие, которое является истинным или ложным?

Если это вызвано в контроллере, вы можете установить значение disabledbutton или написать помощник, который примет условие как переменную и распечатает результат.

<%= button_to "Submit", "#", :id=> "submit", :class => "button_white_big", @disabled %>

is_disabled? ? @disabled = {:disabled => 'disabled'} : @disabled = false 
+0

Я пытался отключен => истина и ложь, но это не работает. Какие рельсы генерируются всегда: disabled => disabled Так что я не уверен, что true и false является опцией в качестве значения для отключенного. – Priyank

+1

: отключенная опция принимает значение true или false, но HTML либо генерирует «disabled =» disabled «», либо ничего в соответствии с источником convert_boolean_attributes! http://apidock.com/rails/ActionView/Helpers/UrlHelper/convert_boolean_attributes! –