8

Deviseを使用しています。
ユーザーが確認に成功すると、フラッシュメッセージが表示されます。
リンクを追加したいのですが。

だから私は代わりにこのメッセージが欲しい

Your account was successfully confirmed. You are now signed in. Go to your profile page, and edit it!

次に、の一部はprofileへのリンクである必要がありますexample.com/users/username/edit

どうすればそれを可能にできますか?

devise.en.yml

confirmations:
  confirmed: 'Your account was successfully confirmed. You are now signed in.'
4

2 に答える 2

13

このメソッドを使用しview_contextて、モデルおよびコントローラー内の任意のビューメソッドにアクセスできます。

例えば:

def index
  flash[:notice] = "Go to your #{view_context.link_to("profile page", link_path)}, and edit it!"
  redirect_to link_path
end

それに応じて更新しますlink_path

于 2013-03-24T12:47:17.617 に答える
4

これらのソリューションの実装に問題がありました。必要なのは、フラッシュ内の単純なHTMLリンクだけでした。これが私がRails4.1でそれを実装した方法です。app / views / shared/_flash.html.erbでフラッシュメッセージをサニタイズする必要がありました。

<% flash.each do |name, msg| %>
  <div class="alert alert-<%= name %>">
    <a class="close" data-dismiss="alert">&#215</a>
    <% if msg.is_a?(String) %>
      <div id="flash_<%= name %>"> <%= sanitize(msg) %> </div>
    <% end %>
  </div>
<% end %>

そして、私のコントローラーでは、.html_safeなしでHTMLを直接入力しました。御馳走になります!

flash[:notice] = %Q[Please <a href="#">click here</a>]
于 2014-10-03T22:48:50.590 に答える