好的,所以在我的用户模型中,我创建了get_username以尝试格式化用户名。
我们的想法是能够使用
TheUser.get_username
它会根据用户级别(admin)正确格式化用户名。作为测试我创建了这个:
def get_username
fname = '<span style="color:red">John</span>'
fname
end
但是,它显示了值,字面上显示的代码为..
我如何能够插入用户名以及正确显示
答案 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)。