Rails 5同时访问多个数据库属性

时间:2018-01-18 10:55:28

标签: ruby-on-rails

我有以下问题:

我的数据库架构如下所示:

ActiveRecord::Schema.define(version: 20180115094430) do

  create_table "users", force: :cascade do |t|
    t.string "name"
    t.string "email"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "password_digest"
    t.string "remember_digest"
    t.boolean "admin"
    t.string "activation_digest"
    t.boolean "activated"
    t.datetime "activated_at"
    t.string "reset_digest"
    t.datetime "reset_sent_at"
    t.float "zero_till_one"
    t.float "one_till_two"
    t.float "two_till_three"
    t.float "three_till_four"
    t.float "four_till_five"
    t.float "five_till_six"
    t.float "six_till_seven"
    t.float "seven_till_eight"
    t.float "eight_till_nine"
    t.float "nine_till_ten"
    t.float "ten_till_eleven"
    t.float "eleven_till_twelve"
    t.float "twelve_till_thirteen"
    t.float "thirteen_till_fourteen"
    t.float "fourteen_till_fifteen"
    t.float "fifteen_till_sixteen"
    t.float "sixteen_till_seventeen"
    t.float "seventeen_till_eightteen"
    t.float "eightteen_till_nineteen"
    t.float "nineteen_till_twenty"
    t.float "twenty_till_twentyone"
    t.float "twentyone_till_twentytwo"
    t.float "twentytwo_till_twentythree"
    t.float "twentythree_till_zero"
  end

end

使用数据库时,我想访问zero_till onetwentythree_till_zero属性/列,并将它们的值与散列一起分配。我知道我可以使用@user.zero_till_one访问每个单独的值,但是没有办法索引列并循环索引以将它们保存在哈希或类似的东西中。

很抱歉我觉得我对RoR很新,我正在编程的应用程序是Michael Hartl教程之后的第一个应用程序。

非常感谢任何帮助或建议

3 个答案:

答案 0 :(得分:3)

如果我不理解它,那么你需要来自用户对象的哈希。您可以使用user.serializable_hash将用户对象转换为哈希值,或者请进一步解释您的要求。

答案 1 :(得分:2)

user.serializable_hash.except('name','email')

答案 2 :(得分:2)

此外,您可以使用活动记录中的attributes方法。

user.attributes.except('name', 'email')

我认为这是一种更清洁的方法。