- 1. ぼっち演算子
- 2. ルーティングを設定してCSVデータをダウンロードする方法
- 3. [Rails] scriptタグ内でRuby/Railsのメソッドを使用する際のescape_javascriptについて
- 4. Ruby初心者の「結局インスタンスメソッドって何ですか?」にエンジニア歴30年のベテランさん超絶わかりやすいアンサー!!!
- 5. 組み合わせ爆発を回避せよ!Rails初心者エンジニアの工夫
- 6. Rails初心者が知っておきたい基礎知識|gem、Bundler など…
- 7. RSpec で ある要素のみが入った配列かどうかを確認したいときは contain_exactly を使う
- 8. Mysql2がbundle installできない対処法 (rails)
- 9. 【Rails】パーシャルまとめ
- 10. gitignoreとvendor/bundle
- 11. Rails の設計を見直す
- 12. 【使用技術編】未経験からWeb系自社開発企業に転職するためにどのようなポートフォリオを作ったか。
- 13. Rails コーティング規約について 3
- 14. 【rails tutorial 3.4.4】ローカル環境でテストコードを通す方法
- 15. Railsでsvgが扱いにくかったのでsvg_helperというgemを作りました。
- 16. postgresで任意のid順にorder by
- 17. 【Rails】flashメッセージをフェードアウトで消す方法【JavaScript】
- 18. ローカル環境にて、nokogiriが原因(?)でbundle installできないときの解決策
- 19. Railsで検索機能を実装する場合の4つのパターン
- 20. 【Rails】Pinterest APIで自分のアカウントのピン一覧を取得し、JSONを返すサンプルコード
ぼっち演算子
Deviseを使ったRailsのコードがあるとします。
これはDeviseを使用したときのcurrent_userに対して、nicknameカラムに
あるデータを取得して@nicknameに代入することを意図したものです。————
@nickname = current_user.nickname
————–
ただし、ログインしないときにこれを実行するとnilに対してメソッドを使おうとしてエラーになってしまいます。これを回避できる記述がRuby2.3からできるようになりました。
それがどのような記述か、またそれはどのような動きをするのかについて説明していきます。解答
@nickname = current_user&.nickname&はsafe navigation operator、 lonely operator(ぼっち演算子)などと呼ばれる演算子です。
メソッドに続けて記述すると、そのメソッドがnilでなかった場合のみ右辺のメソッドが実行されます。
もしnilだった場合は全ての演算結果としてnilを返します。つまり
ルーティングを設定してCSVデータをダウンロードする方法
# 目的
– Qiitaの記事に大まかな流れをテンプレート化しておき、作業効率を上げる。
– 今までの実装では `send_data` しか使ったことなかったのでメモ# 前提条件
– ruby 2.6.0
– ruby 5.2.2# 手順
1. routes.rbにCSVダウンロード用のルーティングを設定する
2. CSVダウンロードボタンを設定したいviewファイルに書く
3. コントローラーに変数を定義やその他諸々を設定
4. 出力データを作成(アクション名.csv.ruby)※コード内容は適当
## 1. routes.rbにCSVダウンロード用のルーティングを設定する
“`ruby:config/routes.rb
resources :card_infos do
collection do
# デフォルト形式をcsvに設定
get :csv_download, defaults: { format: ‘csv’ }
end
end
“`|Helper|HTTP Verb|Path|Controller#Action|
[Rails] scriptタグ内でRuby/Railsのメソッドを使用する際のescape_javascriptについて
## この記事を書くきっかけ
jQueryを書いていると、scriptタグ内でRailsのメソッド(正確にはapplication_helper内のメソッド)を使用したいときがあります。
正しい書き方をしないと正確に呼び出せないため、失敗した書き方と成功した書き方をまとめます。## 前提
current_userの属性によってpathを切り替えるメソッドを
`def hogehoge_path_for`とし、application_helper.rbに定義します。“`ruby:application_helper.rb
def hogehoge_path_for
if …
hoge_path
else
hogehoge_path
end
end
“`これをとあるviewのscriptタグ内で呼び出します。
`let path = hogehoge_path_forの返り値`
としたいです。## 失敗例1
“`ruby:あるview