Web Marina

日々の業務や勉強などで得た知識をアウトプットしていきます。

showからindexの"戻る"ボタンを作りたい。

こんにちは、マリンてす。

現在ポートフォリオを掲載するページを作っています。

感じとしては、一覧ページ(index)から、

どれか選ぶと詳細ページ(show)に飛ぶ感じです。

まずは詳細ページから作っています。

(一覧を見を横に並べるとかでまたハマりそうだったんで…)

詳細から一覧に戻るための"戻る"ボタンを作りたかったのですが、

若干つまったのでメモっときます。

やりたかったこと

  1. 詳細ページから一覧ページに戻るための"戻る"ボタンの作成。
  2. 行き先が明確なので、前のページを覚えておいて…みたいなめんどくさいことはしたくない。

作り方

私は'button_to'を使いました。

<%= button_to "戻る", { :action => "index" }, :method => "get" %>

ハマった点

主にオプションです。

いろいろ試して検証したのですが、

<!-- ダメなパターン -->
<%= button_to "戻る", :method => "get",  :action => "index"  %>
<%= button_to "戻る",  :action => "index" , :method => "get" %>
<%= button_to "戻る", { :action => "index" , :method => "get" } %>
<%= button_to "戻る", { :method => "get" },  :action => "index" %>

<!-- OKなパターン -->
<%= button_to "戻る", { :action => "index" }, :method => "get"  %>
<%= button_to "戻る", { :action => "index" }, { :method => "get" } %>

こんな感じです。

まず順番。

:action:methodは逆ではダメなようですね。

次に{ }です。

両方ともハッシュなので、省略できると思いきや、

どうも:action:methodは別物のハッシュという認識のようです。

(仕組みがいまいちわからないのですが・・・)

まとめ

Ruby系は割と適当でも理解してくれるって言いますが、

言っても初心者には・・・ですよね。(笑)