Rails slim におけるlink_toの使い方メモ

1行パターン

= link_to "表示する文字列", リンク先

コントローラのメソッドを呼ぶ場合

= link_to 表示する文字列, path名(引数),  method: :post

※ postで呼ぶ場合はmethod: :postをつける、つけないとGETで呼ばれる

= link_to 表示する文字列, { controller: 'コントローラ名', action: 'アクション名', 引数1: 値, 引数2: 値}, method: :post

例:
= link_to 表示する文字列, { controller: 'article', action: 'create', title: "aaa", author: "bbb" }, method: :post

例えば最終的に別URLのページへのリダイレクトをする場合

= link_to 表示する文字列, path名(引数),  method: :post, target: '_blank', rel: 'noopener noreferrer'

link_toの表示名が複雑な場合

link_toをブロックで書く

= link_to リンク先 do
  div
  |
  p 

コントローラーのアクションを呼びつつ、別タブで開くパターン

= link_to path名(引数),  data: { method: :post }, target: '_blank', rel: 'noopener noreferrer' do
  div
  |
  p

ブロックで書く場合のポイントは、

  • link_toの第1引数がリンク先になること
  • method: :postをつける場合はdata: {} の中に入れる必要があること
  • do をつけること