首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从视图中调用下一个ActiveRecord项

如何从视图中调用下一个ActiveRecord项
EN

Stack Overflow用户
提问于 2018-01-13 05:47:01
回答 1查看 37关注 0票数 0

我在一个展示多项选择题的网站上工作。用户可以添加新问题。我想从一个按钮调用下一个问题,所以我需要该按钮来使用下一个ActiveRecord项更新页面。

我的控制器:

代码语言:javascript
代码运行次数:0
运行
复制
def practice
  shuffled_questions = Array.new(Question.ids).shuffle 
  @question = Question.find(shuffled_questions.pop)
end

我的视图一次显示一个问题,我不想重复任何问题,这就是为什么我要将它们从数组中提取出来,但我不知道如何从视图中用数组中的下一个id更新@question

我的第一个想法是使用AJAX或OnClick函数更新页面,但似乎行不通。

我读过其他人更新他们的模型和控制器以获得下一个ActiveRecord项,我知道他们在做什么,比如here,但这并不能帮助我理解如何从视图调用更新。

非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-13 09:14:02

在这一行中:

代码语言:javascript
代码运行次数:0
运行
复制
shuffled_questions = Array.new(Question.ids).shuffle

正如@Tamer Shlash指出的那样,您正在创建一个新的数组,并在每次启动practice操作时对其进行混洗。

你可以试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
def practice
  @shuffled_questions = Array.new(Question.ids).shuffle if @shuffled_questions.empty?
  @question = Question.find(@shuffled_questions.pop)
end

现在,当您调用practice操作时,它将只创建一个新数组,并在@shuffled_questions为空的情况下将其置乱,否则它将持久化已置乱的问题数组,您可以根据需要获得下一个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48234443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档