【发布时间】:2019-01-02 19:40:44
【问题描述】:
我有一个文本字段,用户输入了我要转换为列表项的数据。所以他们可能会在文本区域输入:
Apple
Tomato
Wrench
所以我有以下工作:
<% regional_services = @region.services.split("\n") %>
<ul>
<%regional_services.each do |services| %>
<li><%=services%></li>
<%end%>
</ul>
它使用类似的东西正确输出
- 苹果
- 番茄
- 扳手
但我正试图让它在助手中工作,因为它在视图中很难看。
所以我有以下内容:
def other_service
if @region.services.present?
something = @region.services.split("\r\n")
content_tag(:ul) do
content_tag(:li, something.each {|alpha| alpha })
end
else
content_tag(:p, 'Here is text')
end
end
它最终输出如下:
- [“苹果”、“番茄”、“扳手”]
所以看起来它没有在列表项上应用迭代,所以我尝试了以下方法:
def other_service
if @region.services.present?
regional_service = @region.services.split("\n")
content_tag(:ul) do
regional_service.each do |service|
content_tag(:li, service)
end
end
else
content_tag(:p, 'Here is text')
end
end
没有错误,但实际上没有在实际包含项目的页面上显示任何内容。那么如何通过迭代来做 content_tag ul 呢?
【问题讨论】:
-
使用
concat:...each do |service| concat content_tag(...); end -
Welp...这就是解决方案
标签: ruby-on-rails