0

コントローラー アクションのパスと名前を動的に取得するために、誰かがヘルパー関数を作成するのを手伝ってくれませんか。

<% if action_name.eql? "show" %>
  <li><%= link_to '<i class="icon-fixed-width icon-pencil"></i> Edit'.html_safe, edit_contact_path(@contact) %></li>
  <li><%= link_to '<i class="icon-fixed-width icon-trash"></i> Delete'.html_safe, @contact, method: :delete, data: { confirm: 'Are you sure?' } %></li>
<% end %>

基本的に、コードのこの部分のヘルパーを作成したいと思います。

edit_contact_path(@contact)

サイト全体で上記のより大きなコードを動的に使用できるように、「連絡先」に任意のコントローラー名を挿入できるようにしたいと考えています。

ありがとう!

4

1 に答える 1

0

[:edit, @contact]明示的なメソッド名の代わりに使用してください。

<li><%= link_to '.... Edit', [:edit, @contact] %></li>

必要@contactな変数に置き換えます。私は配列構文の方がはるかに読みやすいと感じており、どこでも好んで使用しています。比較:

 = link_to "Edit", edit_user_post_comment_path(@user, @post, @comment)

 = link_to "Edit", [:edit, @user, @post, @comment]
于 2013-10-17T04:34:01.897 に答える