我无法从数据库中获得干净的结果,
module PagesHelper
def list
wishes = WishList.select("content").where("user_id = #{@user.id}")
wishes.each do |wish|
puts wish.fetch_hash
end
end
end
对于ID为6的用户的结果:
[#<WishList content: "test3">, #<WishList content: "test4">, #<WishList content: "test5">]
但我希望获得如下列表: test3,test4,test5没有洪水,我怎么能得到它?
答案 0 :(得分:2)
首先,永远不会将值插入where
。这可能导致SQL注入参数。例如,这很糟糕:
WishList.select("content").where("user_id = #{@user.id}")
这没关系:
WishList.select("content").where(:user_id => @user.id)
这将自动转义查询的@user.id
部分,在此查询中实际上并不需要,但想象您正在执行以下操作:
User.select("email, password").where("admin = #{params[:admin]}")
然后任何人都可以通过他们想要的params[:admin]
中的任何值。
所以
无论如何,通过协会访问它:
wishes = @user.wishlist.select("content")
然后正如Carl Lazlo所建议的那样:
wishes.map(&:content)
答案 1 :(得分:1)
而不是:
wishes.each do |wish|
puts wish.fetch_hash
end
执行:
wishes.map(&:content)