gpt4 book ai didi

ruby-on-rails - 有什么方法可以将模型的属性定义为 html_safe 吗?

转载 作者:行者123 更新时间:2023-12-03 00:46:46 24 4
gpt4 key购买 nike

我有一个名为 Feature 的模型有一个名为 body_string 的变量,其中包含我想要呈现的 HTML 标记,而不是转义。

每次我引用body_string在我看来,我需要使用 <%=raw.html_safe 。这看起来多余而且不那么干。

有什么方法可以一劳永逸地建立 body_string变量为html_safe

我假设这会发生在app/models/feature.rb中文件,但我无法准确地弄清楚正确的语法是什么。我想到了这一点:

def body_string
return self.body_string.html_safe
end

但是 Rails 不喜欢它;它提出了 stack level too deep异常。

当然,我可以定义一个具有不同名称的变量/方法:

def safe_body_string
return self.body_string.html_safe
end

然后只需更改 View 中的所有引用 body_stringsafe_body_string 。但不知怎的,这看起来几乎和简单地使用 raw 一样不干。或.html_safe首先。

对于如何最好地处理这个问题有什么见解吗?我觉得一定有一些非常优雅的东西我只是没有看到。

最佳答案

只需使用 read_attribute避免递归调用 body_string:

def body_string
read_attribute(:body_string).html_safe
end

read_attributewrite_attribute 补充用于在模型中设置属性。

关于样式的注释:除非您确实需要,否则不要使用显式的 return。方法中最后一条语句的结果隐式是该方法返回的值。

关于ruby-on-rails - 有什么方法可以将模型的属性定义为 html_safe 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6269235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com