0

わかりましたので、私のユーザー モデルでは、ユーザー名をフォーマットするために get_username を作成しました。

アイデアは、使用できることです

TheUser.get_username

ユーザーレベル(管理者)に基づいてユーザー名を正しくフォーマットします。テストとして、私はこれを作成しました:

  def get_username 
    fname = '<span style="color:red">John</span>'
    fname
  end

ただし、値は文字どおりに表示され、コードは..

ユーザー名をプラグインして正しく表示するにはどうすればよいですか

4

2 に答える 2

1

使用できますhtml_safe

 def get_username 
   fname = '<span style="color:red">John</span>'
   fname.html_safe
 end

user_name を取得するには、次を使用します。

def get_username 
  fname = "<span style='color:red'>#{user_name}</span>"
  fname.html_safe
end

これは非常に悪いコードであることに注意してください。これは MVC の責任の分離を悪用するだけでなく、セキュリティの脆弱性をもたらす可能性もあります。

このようなコードは、ビューまたはヘルパーにある必要があります。

于 2013-02-06T21:44:26.303 に答える
0

モデルが html を作成することは想定されていません。ビューでそれを行います。代わりに別のアプローチを提案できますか:

を格納するための変数があると思いますuser_level。ビューでこれを次のように使用します。

# .ERB-File
<span class="<%= user.user_level %>"><%= user.user_name %></span>

css でフォーマットします。

# .css-File
span.normal_user {
  color: green;
}
span.admin {
  color: red;
}

PS: ERB-Syntax についてはよくわかりません (haml を使用しています)。

于 2013-02-06T22:38:33.690 に答える