Rails docs http://api.rubyonrails.org/classes/ActiveRecord/Base.htmlによると、シリアル化メソッドを使用してデータベースに配列を格納できます
class User < ActiveRecord::Base
serialize :preferences, Hash
end
user = User.create(:preferences => %w( one two three ))
私のちっぽけなアプリケーションでは、質問モデルの回答列をシリアル化しました。これは、回答の選択肢が複数あるためです。
class Question < ActiveRecord::Base
attr_accessible :question, :link, :answers, :correctanswers
serialize :answers
end
それをテストするためにデータベースをシードしようとして、私はこれをしました...
Question.create!( question: "what is R's favorite color", answers: "a" => %w( red green blue ), correctanswer: "blue", link => "http://janesblog.com")
ただし、レーキ db.seed は、構文が間違っていることを示唆するあらゆる種類のエラーで中止されました
/Users/mm/Sites/ljk/db/seeds.rb:17: syntax error, unexpected tASSOC, expecting ')'
...avorite color", answers: "a" => %w( red green blue ), correc...
... ^
/Users/mm/Sites/ljk/db/seeds.rb:17: syntax error, unexpected ',', expecting $end
...s: "a" => %w( red green blue ), correctanswer: "blue", link ...
誰でも正しい構文を支援できますか? テーブル
class CreateQuestions < ActiveRecord::Migration
def change
create_table :questions do |t|
t.string :question
t.string :link
t.text :answers
t.string :correctanswer
t.timestamps
end
end
end