好的,所以在我的用户模型中,我创建了 get_username 以尝试格式化用户名。
这个想法是能够使用
TheUser.get_username
它会根据用户级别(管理员)正确格式化用户名。作为测试,我创建了这个:
def get_username
fname = '<span style="color:red">John</span>'
fname
end
但是,它使用显示的代码逐字显示值。
我怎样才能插入用户名并正确显示
好的,所以在我的用户模型中,我创建了 get_username 以尝试格式化用户名。
这个想法是能够使用
TheUser.get_username
它会根据用户级别(管理员)正确格式化用户名。作为测试,我创建了这个:
def get_username
fname = '<span style="color:red">John</span>'
fname
end
但是,它使用显示的代码逐字显示值。
我怎样才能插入用户名并正确显示
您可以使用html_safe
.
def get_username
fname = '<span style="color:red">John</span>'
fname.html_safe
end
要获取用户名,请使用:
def get_username
fname = "<span style='color:red'>#{user_name}</span>"
fname.html_safe
end
请注意,这是非常糟糕的代码,这不仅滥用了 MVC 的职责分离,还可能引入安全漏洞。
像这样的代码应该在视图中或助手中。
模型不应该创建 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 语法(我使用 haml)。