【发布时间】:2013-12-26 07:26:14
【问题描述】:
一个用户有一组保存的链接。
每个链接都有属性address 和text。这些可以像这样访问:
@user.links.first.address
@user.links.first.text
如何为用户保存在辅助方法中的所有链接生成a 标记列表,我可以从视图中调用?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 view-helpers helpermethods
一个用户有一组保存的链接。
每个链接都有属性address 和text。这些可以像这样访问:
@user.links.first.address
@user.links.first.text
如何为用户保存在辅助方法中的所有链接生成a 标记列表,我可以从视图中调用?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 view-helpers helpermethods
你可以试试
def create_links
html=""
@user.links.each do |link|
html += link_to "Link for #{link.address}", "#"
html += link_to "Link for #{link.text}", "#"
end
html.html_safe
end
【讨论】:
你为什么不在@user.links上做一个.each?
你可以这样做:
<% @user.links.each do |link| %>
<%= link_to link.text, link.address %>
<% end %>
这将否定加载助手的要求
【讨论】:
你使用这个代码
def directory(links)
links.inject([]) {|_, e| _ << link_to e.name, e.address; _ }.join.html_safe
end
【讨论】:
也许我表达得不够清楚,因为两个答案都使用了link.address 和link.text,我不太明白。但它给了我足够的信息来自己解决它。我就是这样做的:
def link_generator(user_links)
html = ""
user_links.each do |link|
html += link_to link.name, link.address
end
html.html_safe
end
【讨论】: