2015年8月25日火曜日

railsのformのselectでclassが当てられない

formの入力画面をrailsで作っていて、プルダウンを使うのにselectを使っていたのですが、
オプションに書かれてるclassを指定してもclassがHTMLに出力されないので調べました。

スケジュール登録での時の部分をslimでこんな感じで書いてました。
= form_for(@profile, :url => { :action => "update_schedule" }) do |f|
= f.fields_for :repeat_schedules do |rpt|
= rpt.select :start_time_hour, options_for_select((Array 0..23).map { |i| format("%02d", i) }, selected: rpt.object.start_time_hour), { class: 'form-control' }
これだとclassが出力されないため、styleが適用されませんでした。
調べたところ、classを書いている{}の前にもう一つ{}を入れるとよいようです。
こんな感じにするとちゃんとclassが出力されるようになりました。
= rpt.select :start_time_hour, options_for_select((Array 0..23).map { |i| format("%02d", i) }, selected: rpt.object.start_time_hour), {}, { class: 'form-control' }


参考URL
http://stackoverflow.com/questions/21338113/cant-add-class-on-select-form-helper-in-rails-4

2015年8月18日火曜日

bootstrapでreadonlyのテキストボックスにcssで色を変える

bootstrapでテキストボックスにスタイルを当ててたのですが、
readonlyにしてる場所がclassでスタイルを設定しても、
bootstrapで指定してるグレーっぽい色から変えられなかったので調べました。

テキストボックスのタグはこんな感じ。v schedule-input-styleにcssで色をいろいろ設定してもbootstrapのデフォルトのやつに上書きされてしまいます。
<input id="user_work_dates_attributes_20158000_work_date" class="datepicker form-control schedule-input-style" type="text" value="2015-08-18" readonly="readonly">

調べたところ、普通にschedule-input-styleにスタイルを設定するのではなく、
以下のように設定すればよいようです。カーソルもデフォルトのものに変えることができました。
input[readonly].schedule-input-style{
  background-color: #ffffff;
  cursor: default;
}


参考URL
http://stackoverflow.com/questions/23812365/force-enabled-look-to-readonly-input-with-bootstrap-css

2015年8月12日水曜日

classにiCheckを指定したらイベントが取れなかったときの対応

iCheckを使ってたら、
そこのチェックボックスをチェックした時にJSのイベント発火させようと思ったら、
すぐには取れなかったので調べた時の対応です。

iCheckのstyleがあたっているチェックボックスでonclickやonchangeの
イベントを拾おうとしましたが、反応しませんでした。
$('.test-checkbox').on('click', function() {
      console.log('aaa');
    });

    $('.test-checkbox').on('change', function() {
      console.log('aaa');
    });

調べたところ、こう書けば良いようです。
公式にも書いてありました。。。
 $('.test-checkbox').on('ifChecked', function(event) {
      console.log('aaa');
    });


参考URL
http://arimo.hatenablog.com/entry/icheck_radio_notwork

2015年8月5日水曜日

railsでrspecのテスト書いてたらparamsではまった件

railsのmodelのメソッドにparamsを渡している処理があったので、
そこのテストをrspecで書いてました。
何も考えずにHashでparamsを作って引数に渡していたら、
Strong Parametersのところで
No explicit conversion of Symbol into Stringのエラー出てしまいました。
ちゃんと調べたら、paramsはHashではなくて、
ActionController::Parametersを使っていました。
rspecではActionController::Parameters.new({})の形でやればうまくいきました。
しょーもない話です、、、

参考URL
http://stackoverflow.com/questions/25374559/no-explicit-conversion-of-symbol-into-string-for-new-records-in-rails-4-0-1-o