22752


Ruby on Railsで開発をしています。  
viewはslimを使っていてAdminLTEテンプレートを適用しています。  
AdminLTEテンプレートの中、フォームで使うclassがいくつかがあります。  
まず、基本的にdiv.form-group、エラーが起こった時はdiv.form-group.has-warningなど。

自分がしたいのはvalidationを利用して、エラーメッセージを表示、それによってdiv.form-group.has-
warningを使って入力のところのデザインもエラー表示したいんです。  
ですが、基本はdiv.form-groupを使っているため、エラーがあるときだけdiv.form-group.has-
warningに切り替える必要があります。ここをどうすればいいか教えていただきたいです。

下記は今のフォームのコードです。

[code]

    div.box-body
      = form_for @book do |f|
        div.form-group
          .field
            = f.label :番号
            = f.text_field :book_num, class: 'form-control', placeholder: 'Enter...'
            = @book.errors.any? ? @book.errors.messages[:book_num][0] : ''
                .
                .
                .
    
[/code]


CC BY-SA 3.0
2016-03-03T02:00:15.040
22750
2016-03-03T04:32:54.653
10710
question
ruby-on-rails slim
Slimでdivのclassを途中に切り替える方法


Ruby attributesで、エラーがあるときだけclass属性にhas-warningを設定してみてはいかがでしょうか  
<http://www.rubydoc.info/gems/slim/frames#Ruby_attributes>

[code]

    div.box-body
      = form_for @book do |f|
        div.form-group class=(@book.errors.any? ? 'has-warning' : '')
          .field
            = f.label :番号
            = f.text_field :book_num, class: 'form-control', placeholder: 'Enter...'
            = @book.errors.any? ? @book.errors.messages[:book_num][0] : ''
                .
                .
                .
    
[/code]


CC BY-SA 3.0
2016-03-03T04:32:54.653
22752
2016-03-03T04:32:54.653
2599
22750
answer