我在视图中有一些ruby代码并且它工作得很好但是我知道这不是正确的方法,所以想把它放到一个帮助方法中(感谢@SimoneCarletti)。我遇到了一些困难,通常我发现这里10000人比我优秀的Rubyist更聪明。
这是我想要放入帮助程序的代码
product_feed_item.voters_who_voted.map(&:full_name).join(("<br />").html_safe)
以下是我的用户模型中的方法,以获取用户的product_feed
def product_feed
Design.from_users_followed_by(self).to_a.concat Product.from_users_followed_by(self).to_a
end
此视图的控制器是
@product_feed_items = current_user.product_feed
@product_feed_items.sort! {|t1, t2| t2.created_at <=> t1.created_at}
respond_to do |format|
@product_feed_items = @product_feed_items.paginate(:page => params[:page], :per_page => 20)
format.html
format.json { render json: @product_feed_items }
end
并且视图
<%= render partial: "shared/product_feed_item", collection: @product_feed_items %>
其中partial包含我要提取到方法中的第一个代码块。
我怎样才能将它放入方法?如果您需要我澄清或添加任何帮助,请告诉我。
提前感谢您的帮助!节日快乐!
答案 0 :(得分:1)
除非我遗漏了某些东西,否则它就像下面一样简单
def voter_full_names(product_feed_item)
product_feed_item.voters_who_voted.map(&:full_name).join(("<br />").html_safe
end
在你看来
<%= voter_full_names(product_feed_item)%>
答案 1 :(得分:0)
您可以尝试使用装饰器。使用Draper装饰器,您可以使用与表示相关的逻辑来包装模型以进行组织。