用户模型:用户名格式方法

时间:2013-02-06 21:41:19

标签: ruby-on-rails ruby format username

好的,所以在我的用户模型中,我创建了get_username以尝试格式化用户名。

我们的想法是能够使用

TheUser.get_username

它会根据用户级别(admin)正确格式化用户名。作为测试我创建了这个:

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

但是,它显示了值,字面上显示的代码为..

我如何能够插入用户名以及正确显示

2 个答案:

答案 0 :(得分: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的责任分离,还可能会引入安全性。

这样的代码应该在视图中或帮助者。

答案 1 :(得分:0)

Model不应该创建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)。