2017月11日20日
Ruby で配列を freeze する話
Ruby で配列を freeze したかったら以下。
irb(main):001:0> LIST = ['001', '002', '003'].freeze
=> ["001", "002", "003"]
ただし上のコードで freeze されるのは LIST
という配列オブジェクト自体で、配列の要素の値は freeze されない。
Ruby で配列を freeze したかったら以下。
irb(main):001:0> LIST = ['001', '002', '003'].freeze
=> ["001", "002", "003"]
ただし上のコードで freeze されるのは LIST
という配列オブジェクト自体で、配列の要素の値は freeze されない。
2017.11.20(月)18:00までは缶バッジが200円引になるのでお買い得!SUZURIにて販売中です!
https://suzuri.jp/atotok
jQuery でチェックボックスの状態を取得したり設定したり、結構よく使うのに方法がいろいろあったりします。ただ現時点(2017年11月)での最適解はおそらく今回紹介するもの。
<input type="checkbox" name="checkbox_1" checked>
<input type="checkbox" name="checkbox_2">
チェックボックスがチェックされているかを取得する。
// 便宜的に式で評価してみる
if ( $('input[name=checkbox_1]').prop('checked') ) {
console.log('true');
} else {
console.log('false');
}
// 別に以下でも確認できる
console.log( $('input[name=checkbox_1]').prop('checked') );
jQuery のセレクタで書いている部分はお好きに。
次にセレクタで指定したチェックボックスにチェックを入れる。
$('input[name=checkbox_2]').prop('checked', true);
最後に同じ方法でセレクタで指定したチェックボックスのチェックを外す。
$('input[name=checkbox_2]').prop('checked', false);
このくらいはテンプレ的に覚えておくと便利です。
ActiveRecordのenumが便利です。
enumを使用することで値の判定などわかりやすいコードが書けるようになります。
http://api.rubyonrails.org/v5.1/classes/ActiveRecord/Enum.html
例えば、Spotモデルに下書き(draft)と公開(published)の状態をもつステータスを追加するとします。
rails g migration add_status_to_spot status:integer
class Spot < ApplicationRecord
belongs_to :prefecture
belongs_to :area
has_many :spot_photos
has_many :spot_galleries
validates :title, presence: true
validates :prefecture_id, presence: true
validates :area_id, presence: true
validates :latitude, numericality: true
validates :longitude, numericality: true
enum status: { draft: 0, published: 1}
end
statusの値をenumで定義します。
statusが0の場合はdraft、1の場合はpublishedにします。