Ruby on rails 我想显示一个随机对象
我想在卡片中显示一个随机对象Ruby on rails 我想显示一个随机对象,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想在卡片中显示一个随机对象 我的代码返回错误消息,如: "undefined method `sample' for nil:NilClass", "undefined method `photo' for nil:NilClass", "undefined method `user' for nil:NilClass" 我不明白。你能帮我吗?你可以在conntroller中随机选择@slots集合,例如: @slots = Slot.where(id: Slot.pluck(:id).
我的代码返回错误消息,如:
"undefined method `sample' for nil:NilClass",
"undefined method `photo' for nil:NilClass",
"undefined method `user' for nil:NilClass"
我不明白。你能帮我吗?你可以在conntroller中随机选择@slots集合,例如:
@slots = Slot.where(id: Slot.pluck(:id).sample(3))
然后在视图中直接使用
<% @slots.each do |slot| %>
在RubyonRails(ActiveRecord)中获取一个随机对象并没有很好的文档记录,但它相当容易 显而易见:从任意数组中随机选取两个对象:
@users = User.all
@users.sample(2)
这将从数据库中获取所有对象,将它们放在一个数组(@users)中,从该数组中拾取两个随机对象。如果您碰巧需要一个数组中的所有对象,这很好。如果没有,你最好选择更好的:
User.order('RANDOM()').limit(2)
这将使用随机顺序从数据库中只读取两个条目。因此,在db上比第一个命令容易得多
命令语法适用于PostgreSQL-对MySQL使用“RAND()”
有一件事需要注意,那就是默认的\u范围。如果已为obj类设置了默认范围,请改用“重新排序”:
User.reorder('RANDOM()').limit(2)
谢谢sawa的更正!这是我第一次发布到stackoverflow=)什么是
@slots
?插槽的外观如何?@slots未定义(nil)。。。你从来没有设置过。我只是在我的控制器中检查,@slot
没有定义。。。在我的控制器中,我的主方法现在的内容是:@slots=slots.all
,但我认为这还不够。。。新的错误消息是:uninitialized constant PagesController::Slots
aaaaaargh!我的问题是我的控制器!它被纠正了!!!多亏了你,我才能够回到问题的根源!!!