とりあえずメインのコントローラーができたので、今回からはviewに移ります。
といってもマークアップだけじゃなくて同時に機能実装もするので裏方もやるんですがね。
久しぶりのCSSなので覚えてないことや知らないことがいっぱい。
久々に記事更新しなくちゃ。
css
背景の透過
rgbaでアルファチャンネルを0にすれば完全透過。
1は不透明。
background-color: rgba(0,0,0,0);
haml
submitボタンにアイコンを配置
f.submitの場合はtextしかいれられないため、buttonのtypeをsubmitにして内部にアイコンを格納する。buttonなら文字列もアイコンも格納できる。
= form_with(url: root_path, method: :get, local: true) do |f|
= f.search_field :keyword, placeholder: "何かお探しですか?"
= button_tag type: 'submit' do
%i.fa.fa-search
rails
.delete()
stringに対して用い、特定の文字を削除する。
"hoge".delete("h")
=> oge
破壊的な変更はdelete!とする。
注意点としては、delete!(“hogehoge”)でhogehogeが含まれない場合、nilが返る。
validator
バリデーションフォルダやファイルを作成した場合、rails sをやり直さないとuninitialized constなどのエラーが出る。
task
定期的に実行したい処理は、lib/tasks以下のディレクトリに、rakeタスクを作成して処理を記述する。
taskの作成
rails g task task名
以下のファイルが作成される。
lib/tasks/task名.rake
namespace :task_sample do
end
namespace :user do
desc "ユーザー情報をリセットする"
task reset_flag: :environment do
User.update_all(flag: false)
end
end
実行する。
rake task user:reset_flag
helperメソッド
app/helpers/product_helper.rb
module ProductsHelper
def converting_to_jpy(price)
"#{price.to_s(:delimited, delimiter: ',')}円"
end
end
数値の桁区切り、通過表示
to_s(:delimited), number_with_delimiter
to_s(:delimited)だけで桁区切りは, 小数点区切りは.が与えられる。
桁区切りはdlimiterを指定することで記号を変更できる。
小数点区切りはseparator。
1000.to_s(:delimited, delimiter: ' ', separator: ',')
to_s(:currency)
ワンライナー
array = [1, 2, 3, 4, 5].map do |el|
if el.odd?
el
end
end.compact!
array = [1, 2, 3, 4, 5].map { |el| el if el.odd? }.compact!
array = (1..5).to_a.delete_if { |el| el.even? }
array = (1..5).to_a.delete_if(&:even?)
array = [1, 2, 3, 4, 5].select{ |el| el.odd?}
delete_if
hash.delete_if(|key, value| 条件 )
array.delete_if(|element| 条件 )
ブロックの戻り値がtrueの時、要素を削除する。
ハッシュに使う場合はキーと値を削除する。
配列から複数の要素を削除
「-」メソッドで差分が取れる。
a = [hoge, fuga]
b = [hoge]
c = a - b
=> [fuga]
dig
ハッシュに対して使う。
ネストされたハッシュに対してキーを順に参照して値を返す。
hash={key1: {key2: {key3: "hoge"}}}
hash.dig(:key1, :key2, key3)
=> hoge
routes
namespace do
namespaceに付けた名前がurlの先頭に付与される。
namespace :admin do
namespece :users do
resources :hoges, only[:index]
end
end
admin/users/hoges
コメント