我有一个名为Puzzle的对象,我在它上面调用.map以隔离'title'值。然后我使用'puts'来整齐地打印它们,但没有返回。
def puzzle_find
title_array = self.puzzles.map { |s| s.title }
puts title_array
end
#=> " "
如果我不使用'puts',那么我得到这样的数组:
def puzzle_find
title_array = self.puzzles.map { |s| s.title }
end
#=> ["title 1", "title 2", "title 3"]
我试图在我的视图中使输出看起来像这样:
title 1
title 2
title 3
谢谢
答案 0 :(得分:3)
标题集应该在控制器中准备(或者由控制器公开并在模型中检索,或者等等,只要在所有标题的末尾都有标题集合):
def controller_method
@puzzles = ... whatever ...
@titles = @puzzles.collect(&:title)
end
查看:
<% @titles.each do |t| %>
<%= t %><br/>
<% end %>
(或者将其包装成部分,或者使用帮助器。上面假设已经擦除了HTML的不良。)
答案 1 :(得分:1)
title_array.each do |title|
puts title
end
答案 2 :(得分:0)
嗨当你说“我的观点”时,我认为它是html.erb文件。
使用join方法将<br/>
插入数组:
def puzzle_find
title_array = self.puzzles.map { |s| s.title }.join('<br/>')
end
如果您的“视图”与控制台输出有关:
将联接方法与\n
:
def puzzle_find
title_array = self.puzzles.map { |s| s.title }.join('\n')
end
irb console中的示例:
ruby-1.8.7-p334 :001 > puts ["a","b","c"].join("\n")
a
b
c
=> nil