我有五个表单输入作为文本,基本上我想随机显示他们在每个页面加载为用户。现在它显示为1-5,但我希望它随机每次。Rails对输入数据进行混洗?
show.html.erb
<p class="question-answer-choice"><%= @post.answer_choice %></p>
<p class="question-answer-choice"><%= @post.answer_choice_2 %></p>
<p class="question-answer-choice"><%= @post.answer_choice_3 %></p>
<p class="question-answer-choice"><%= @post.answer_choice_4 %></p>
<p class="question-answer-choice"><%= @post.answer_choice_5 %></p>
我想要的。样品方法(?)的形式输入变量,但它没有做任何事情,或在视图中。
posts_controller.rb
...
@randomize_posts = ["@post.answer_choice", "@post.answer_choice_2", "@post.answer_choice_3", "@post.answer_choice_4", "@post.answer_choice_5"].sample
...
我得到这个错误:未定义的方法'answer_choice'为nil:NilClass,在控制器中。 此外,不会show.html.erb代码只洗牌任何答案选择那只被称为“answer_choice”,而不是那些与_2,_3等添加在最后? – mazing
answer_choice不是@post上的方法吗?在调用它的方法之前,你是否也加载过@post?我在你的数组中看到他们只是字符串,这可能是你之前没有得到错误的原因。 shuffle方法会随机化数组中的所有元素,而不管它们是什么 – hvenables
通过这个,你的意思是把它放在posts.controller中的“def show”下吗? “是@post上的方法”意味着什么? – mazing