Ruby on rails 在Rails的帮助程序中渲染fa_图标的正确方法
我有一个Rails 4.2应用程序,它有一个分级系统。我想将演示者逻辑移到助手中。我想显示一颗星或半颗星,这取决于排名是否完整Ruby on rails 在Rails的帮助程序中渲染fa_图标的正确方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个Rails 4.2应用程序,它有一个分级系统。我想将演示者逻辑移到助手中。我想显示一颗星或半颗星,这取决于排名是否完整 module ThingHelper def calculate_stars(thing) output = "" total = thing.overall_average thing.overall_average.ceil.times do |n| if total >= 1 output += c
module ThingHelper
def calculate_stars(thing)
output = ""
total = thing.overall_average
thing.overall_average.ceil.times do |n|
if total >= 1
output += content_tag(:i, "<%= fa_icon 'star' %>")
total -= 1
else
output += content_tag(:i, "<%= fa_icon 'star-half' %>")
end
end
return output
end
end
模块ThingHelper
def计算_星(东西)
output=“”
总计=总平均值
总平均每一次都是这样
如果总数>=1
输出+=内容\标记(:i,“”)
总数-=1
其他的
输出+=内容\标记(:i,“”)
结束
结束
返回输出
结束
结束
在我的erb模板中,我有以下内容:
<%= calculate_stars(thing).html_safe %>
但是,它只是列出如下字符串:“”。我尝试过使用raw
以及使用concat
而不是+=
,但两种尝试的解决方案都只是呈现一个字符串
我也尝试过不使用content\u标记
helper,但这不起作用
我曾征询以下意见:
和
我错过了什么?谢谢
编辑
我不相信这可以在helper中完成,所以我只能将逻辑放在视图中。基本上,我取整并计算满星的数量,然后有一个条件在取整的基础上再加一个 您犯的两个错误非常小 首先,是在您给内容标签的参数中。在第一个例子中
content_tag(:p, "Hello world!")
# => <p>Hello world!</p>
我知道你在做其他事情来繁星等等。我想你可以从这里开始…你犯了两个非常小的错误 首先,是在您给内容标签的参数中。在第一个例子中
content_tag(:p, "Hello world!")
# => <p>Hello world!</p>
我知道你在做其他事情来繁星等等。我想你可以从这里开始…你犯了两个非常小的错误 首先,是在您给内容标签的参数中。在第一个例子中
content_tag(:p, "Hello world!")
# => <p>Hello world!</p>
我知道你在做其他事情来繁星等等。我想你可以从这里开始…你犯了两个非常小的错误 首先,是在您给内容标签的参数中。在第一个例子中
content_tag(:p, "Hello world!")
# => <p>Hello world!</p>
我知道你在做其他事情来繁星等等。我想您可以从这里获取它…您不需要为输出声明字符串
module ThingHelper
def calculate_stars(thing)
total = thing.overall_average
thing.overall_average.ceil.times do |n|
if total >= 1
content_tag(:i, :class => "fa fa-list") do
end
total -= 1
else
content_tag(:i, :class => "fa fa-list") do
end
end
end
end
end
然后在erb上渲染:
<%= calculate_stars(thing) %>
请注意,我正在使用引导图标和字形图标作为我的图标。只需更改图标类
我在我的开发中尝试了这一点,并制作了以下产品:
您不需要为输出声明字符串
module ThingHelper
def calculate_stars(thing)
total = thing.overall_average
thing.overall_average.ceil.times do |n|
if total >= 1
content_tag(:i, :class => "fa fa-list") do
end
total -= 1
else
content_tag(:i, :class => "fa fa-list") do
end
end
end
end
end
然后在erb上渲染:
<%= calculate_stars(thing) %>
请注意,我正在使用引导图标和字形图标作为我的图标。只需更改图标类
我在我的开发中尝试了这一点,并制作了以下产品:
您不需要为输出声明字符串
module ThingHelper
def calculate_stars(thing)
total = thing.overall_average
thing.overall_average.ceil.times do |n|
if total >= 1
content_tag(:i, :class => "fa fa-list") do
end
total -= 1
else
content_tag(:i, :class => "fa fa-list") do
end
end
end
end
end
然后在erb上渲染:
<%= calculate_stars(thing) %>
请注意,我正在使用引导图标和字形图标作为我的图标。只需更改图标类
我在我的开发中尝试了这一点,并制作了以下产品:
您不需要为输出声明字符串
module ThingHelper
def calculate_stars(thing)
total = thing.overall_average
thing.overall_average.ceil.times do |n|
if total >= 1
content_tag(:i, :class => "fa fa-list") do
end
total -= 1
else
content_tag(:i, :class => "fa fa-list") do
end
end
end
end
end
然后在erb上渲染:
<%= calculate_stars(thing) %>
请注意,我正在使用引导图标和字形图标作为我的图标。只需更改图标类
我在我的开发中尝试了这一点,并制作了以下产品:
谢谢。这起作用了。您指出的问题是我传递给
content\u tag
的参数。谢谢。这起作用了。您指出的问题是我传递给content\u tag
的参数。谢谢。这起作用了。您指出的问题是我传递给content\u tag
的参数。谢谢。这起作用了。您指出的问题是我传递给content\u tag
的参数。