使用索引方法将应用程序升级到 Rails 5。问题是它不会递增到下一个 ActiveRecord 集合记录。下面的代码用于在 Rails 4.0 中工作。尝试使用index_by。
def next_question
index = campaign.quiz_questions.index self
campaign.quiz_questions[index + 1]
end
调试器
(byebug) campaign.quiz_questions.index
*** NoMethodError Exception: undefined method `index' for #<QuizQuestion::ActiveRecord_Associations_CollectionProxy:0x007f80012d71b0>
Did you mean? index_by
使用index_by
(byebug) index = campaign.quiz_questions.index_by
#<Enumerator: #<ActiveRecord::Associations::CollectionProxy [#<QuizQuestion id: 113, campaign_id: 492, message: "Where did Hullabalooza's freak show manager send H...", created_at: "2016-07-20 20:50:32", updated_at: "2016-07-20 20:50:32">]>:index_by>
索引 + 1
(byebug) index + 1
*** NoMethodError Exception: undefined method `+' for #<Enumerator:0x007fc4db445960>
nil
最佳答案
将其更改为find_index
方法。现在可以运行了
def next_question
index = campaign.quiz_questions.find_index self
campaign.quiz_questions[index + 1]
end
关于ruby-on-rails - rails 5 : ActiveRecord collection index_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38490650/