我需要在我的rails語言學習應用程序中保存一個數組。這是我需要這樣做的情況/原因(如果有更好的方法,請讓我知道)。一次一個地呈現用戶10個詞來學習。學到這些單詞後,他們會在同一組10個單詞中得到答覆。Rails將數組存儲在數據庫中
對於'測驗'部分,我想隨機化出現在單詞中的順序(例如:目前,如果您學習單詞1.fish 2.cat 3.dog ...您將被問到相同的order 1.fish 2.cat 3.dog ...這可以使測驗更容易
我需要堅持它,以防用戶註銷或導航離開。在這種情況下,我想返回它們到。他們就停工,對測驗的確切的詞
這裏是控制器代碼我目前有:
def index
.
.
@quiz = Lang.limit(10).offset(current_user.bookmark - 11)
exercise_bank
.
.
end
private
def exercise_bank
current_user.random_exercise_array = (0..9).step(1).shuffle
current_user.save
@index2 = current_user.random_exercise_array[@index]
#@index starts at 0 and increments on each call to index action
#@index2 grabs the random number and uses it to reference a word in @quiz
#something like this: @quiz[@index2].spanish_to_english---grabs a english word
end
end
上面的想法是選擇一個隨機數字0-9,並用它來引用我的數據庫中的一個單詞。
random_exercise_array: "---\n- 6\n- 0\n- 1\n- 7\n- 8\n- 5\n- 9\n- 3\n- 2\n- 4\n"
下面是相關用戶DB代碼:
class DeviseCreateUsers < ActiveRecord::Migration
serialize :random_exercise_array
end
相關遷移文件:
class AddRandomExerciseArrayToUsers < ActiveRecord::Migration
def change
add_column :users, :random_exercise_array, :text
end
end
是在像在我的數據庫以下爲random_exercise_array屬性上述結果這是解決這個問題的最好方法嗎?如果是這樣,你能解釋一下如何從random_exercise_array中取回一個不包含( - )和(\ n')的整數嗎?
「我想要將數組存儲在數據庫中」通常通過將數組設置爲has_many關聯來解決 – Pavling 2014-09-01 07:57:38