我有User.all
,返回3个结果。
我怎样才能做到这一点,我可以将每个结果呈现为:
<a href="path_to_user_foo_here">Foo</a>, <a href="path_to_user_bar_here">Bar</a>, and <a href="path_to_user_foobar_here">Foobar</a>
在浏览器中呈现时,将显示为:
Foo, Bar, and Foobar
我知道to_sentence
帮手。但不太确定如何执行此操作,因为User.all
返回3个哈希对象。我可以使用.map(&:first_name)
,但我怎样才能在link_to
方法中提供路径路径。
寻找有效的方法。
答案 0 :(得分:1)
我认为你正在寻找这样的东西。 (回答更新)
帮助:
module ApplicationHelper
...
include ActionController::UrlWriter
def generate_user_links_sentence
links = User.all.collect do |user|
link_to user.first_name, user_path(user)
end
links.to_sentence
end
...
end
# Example: <%= generate_user_links_sentence %>
如果您愿意,可以将生成逻辑分离到控制器中,但是从助手访问路径路径很困难,更不用说控制器了。在视图中可能有更好的方法来做到这一点,但这是我现在真正想到的。
更新:只是在视图中:
<%= User.all.collect{|u| link_to u.first_name, user_path(u)}.to_sentence %>