Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 保存来自四个随机行的已发布数据,以便它们不会';在页面生成后不随机化_Ruby On Rails_Ruby On Rails 3_Sqlite - Fatal编程技术网

Ruby on rails 保存来自四个随机行的已发布数据,以便它们不会';在页面生成后不随机化

Ruby on rails 保存来自四个随机行的已发布数据,以便它们不会';在页面生成后不随机化,ruby-on-rails,ruby-on-rails-3,sqlite,Ruby On Rails,Ruby On Rails 3,Sqlite,我正在使用代码: <h2> <% random_bullets = Bullet.all %> <ul> <% random_bullets.shuffle.first(4).each do |r| %> <br> <li><%= db.save(r.content) %></li> <% end %> </ul> </h2> 从我的数

我正在使用代码:

<h2>
<% random_bullets = Bullet.all %>
<ul>
  <% random_bullets.shuffle.first(4).each do |r| %>
<br>
    <li><%= db.save(r.content) %></li>
  <% end %>
</ul>
</h2>



从我的数据库中随机抽取四个项目,并将它们发布到一个页面上;我想做的是让他们保存项目符号,这样他们只有在生成页面后才会随机化。我可以对这段代码做些什么来实现这一点吗?如果没有,我可以做些什么来实现这一点。代码在嵌入式Ruby中,db是一个sqlite3数据库。

设置随机项目符号和随机化属于您的控制器。到了那里,我建议设置一个cookie,其中包含按顺序排列的bullet.id数组。 然后,如果数组存在,您可以在数组上迭代,否则创建一个新数组并保存它

在控制器中:

if cookies[:bullets].nil?
  @bullets = Bullet.all.shuffle.first(4)
  cookies[:bullets] = @bullets.collect(&:id)
else
  @bullets = []
  cookies[:bullets].each do |id|
    @bullets << Bullet.find(id)
  end
end
如果cookies[:子弹].nil?
@子弹=子弹。全部。洗牌。第一(4)
cookies[:子弹]=@bullets.collect(&:id)
其他的
@项目符号=[]
cookies[:项目符号]。每个do | id|

@我在控制器外使用了这些代码,效果很好。这就是我现在要做的,就是让它在视图中工作。你知道我怎么做吗?我不知道。我还是一个主要的新手。我在view.No上收到了一个“nil:NilClass的未定义方法'each'。cookie是指在客户端计算机上存储cookie。。。希望你知道这意味着什么。所以没有db列。代码是有效的,因此您必须将@bullets somewhere命名错误。
<ul>
  <% @bullets.each do |r| %>
    <li><%= r.content %></li>
  <% end %>
</ul>