Ruby on Rails 5 — seed.rb

Есть ли какая-либо спецификация, которой я должен придерживаться в файле seeds.rb? Когда я рейкну db:seed, я получаю ответ "рейк прерван"

Я использую рельсы 5.0.0

Любая помощь будет оценена. Спасибо.

enter code here

bdme551@bdme551:~/bdme/bin$ rails db:seed --trace
Looks like your app's ./bin/rails is a stub that was generated by Bundler.

In Rails 5, your app's bin/ directory contains executables that are versioned
like any other source code, rather than stubs that are generated on demand.

Here's how to upgrade:

  bundle config --delete bin    # Turn off Bundler's stub generator
  rails app:update:bin          # Use the new Rails 5 executables
  git add bin                   # Add bin/ to source control

You may need to remove bin/ from your .gitignore as well.

When you install a gem whose executable you want to use in your app,
generate it and add it to source control:

  bundle binstubs some-gem-name
  git add bin/new-executable

** Invoke db:seed (first_time)
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:abort_if_pending_migrations
============= WARNING FROM mysql2 =============
The options :user, :pass, :hostname, :dbname, :db, and :sock will be deprecated at some point in the future.
Instead, please use :username, :password, :host, :port, :database, :socket, :flags for the options.
============= END WARNING FROM mysql2 =========
rails aborted!
NoMethodError: undefined method `to_i' for {:name=>"FirstName"}:Hash
Did you mean?  to_s
               to_a
               to_h
/home/bdme551/bdme/app/models/user.rb:8:in `initialize'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/inheritance.rb:65:in `new'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/inheritance.rb:65:in `new'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/persistence.rb:33:in `create'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/persistence.rb:31:in `block in create'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/persistence.rb:31:in `collect'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/persistence.rb:31:in `create'
/home/bdme551/bdme/db/seeds.rb:11:in `<top (required)>'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `load'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `block in load'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:259:in `load_dependency'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `load'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/engine.rb:549:in `load_seed'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/tasks/database_tasks.rb:268:in `load_seed'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/railties/databases.rake:196:in `block (2 levels) in <top (required)>'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:248:in `block in execute'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:243:in `each'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:243:in `execute'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:187:in `block in invoke_with_call_chain'
/home/bdme551/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:180:in `invoke_with_call_chain'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:173:in `invoke'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:152:in `invoke_task'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `block (2 levels) in top_level'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `each'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `block in top_level'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:117:in `run_with_threads'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:102:in `top_level'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:13:in `block in run_rake_task'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:178:in `standard_exception_handling'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:10:in `run_rake_task'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:51:in `run_command!'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands.rb:18:in `<top (required)>'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/app_loader.rb:46:in `require'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/app_loader.rb:46:in `block in exec_app'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/app_loader.rb:35:in `loop'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/app_loader.rb:35:in `exec_app'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/cli.rb:5:in `<top (required)>'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/exe/rails:9:in `require'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/exe/rails:9:in `<top (required)>'
/home/bdme551/.rvm/gems/ruby-2.3.1/bin/rails:23:in `load'
/home/bdme551/.rvm/gems/ruby-2.3.1/bin/rails:23:in `<main>'
/home/bdme551/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `eval'
/home/bdme551/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:seed
bdme551@bdme551:~/bdme/bin$ 

пользователь.rb

   class User < ActiveRecord::Base
  has_many :roles
  ROLES = {0 => :guest, 1 => :user, 2 => :moderator, 3 => :admin}  

  attr_reader :role

  def initialize(role_id = 0)
    @role = ROLES.has_key?(role_id.to_i) ? ROLES[role_id.to_i] : ROLES[0]
  end

  def role?(role_name)
    role == role_name
  end
end

семена.рб

    # This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
#   cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
#   Mayor.create(name: 'Emanuel', city: cities.first)

# DELETED - REBASED VERSION!!!

users = User.create([
     { name: 'FirstName' }, { name: 'LastName' }, { user_id: 'userid'} ])

    # {name: "Lecture 8", user_id: 1, link: "http://flatiron-school.s3.amazonaws.com/ruby-003/reviews/playister-associations-with-artists.mp4", description: "Playlister App - Associations with Artists", lecture_date: "10/11/2013"}, 

supplies = Supplies.create([
    { description: 'description' }, { medline_id: 'medline_id' }, { vendor: 'vendor' }, { HCPCS: 'HCPCS' } ])
#   {body: "Installing the **Guard gem** to automatically run rspec tests after each Rails file save action.", video_timestamp: 3783.467413, video_id: 5, created_at: "2013-12-04 20:55:41", updated_at: "2013-12-04 22:08:00", user_id: 3}
# ])

# notes_steph = Note.create([
#   {body: "We use groupings for gems to specify which environments gems are active in.  Here, the rspec, capybara, and selenium gems are grouped in both the test and development environments.", video_timestamp: 2408.407864, video_id: 5, created_at: "2013-12-04 20:54:11", updated_at: "2013-12-04 20:54:11", user_id: 2},
#   {body: "Drawing the routes for the ```Post``` controller via a resource, which generates the 7 standard routes: index, new, create, edit, update, show, and destroy. ", video_timestamp: 4257.238568, video_id: 5, created_at: "2013-12-04 20:58:44", updated_at: "2013-12-04 20:58:44", user_id: 2},
#   {body: "Side-by-side comparison of routes with the `Post` controller.  Shows how a certain route corresponds to a specific action within a controller.", video_timestamp: 5100.092628, video_id: 5, created_at: "2013-12-04 21:00:50", updated_at: "2013-12-04 21:00:50", user_id: 2},
#   { body: "![DHH](http://static.guim.co.uk/sys-images/Technology/Pix/pictures/2007/12/12/heinemeier.article.jpg 'DHH')", video_timestamp: 5661.311041, video_id: 5, created_at: "2013-12-04 21:05:03", updated_at: "2013-12-04 21:05:03", user_id: 2},
#   { body: "\n\n- - Review routes\n- - Relationship between MVC\n- - Basics of CRUD app\n- - Best Practices", video_timestamp: 6357.539163, video_id: 5, created_at: "2013-12-04 21:07:32", updated_at: "2013-12-04 22:00:02", user_id: 2},
#   {body: "**Generating a Rails App** - what's the importance of `-T` ?", video_timestamp: 125, video_id: 5, created_at: "2013-12-04 20:41:41", updated_at: "2013-12-04 22:07:09", user_id: 2},
#   {body: "**Reviewing the Gemfile** - what does the 'turbolink' gem do?", video_timestamp: 590.109342, video_id: 5, created_at: "2013-12-04 20:44:01", updated_at: "2013-12-04 22:07:16", user_id: 2},
#   {body: "**Gem Version Notation:** `~> 4.0.0` means to use any minor version greater than 4.0.0 and less than 4.1.0.  `>= 1.3.0` means to use the most recent version greater than 1.3.0.", video_timestamp: 612.732023, video_id: 5, created_at: "2013-12-04 20:50:02", updated_at: "2013-12-04 22:07:24", user_id: 2},
#   {body: "Differences between the **test, development, and production databases**. Development is a database that's used during the feature development process, whereas production is a database that's used for production purposes.", video_timestamp: 1157.556356, video_id: 5, created_at: "2013-12-04 20:52:15", updated_at: "2013-12-04 22:07:44", user_id: 2},
#   {body: "Installing the **Guard gem** to automatically run rspec tests after each Rails file save action.", video_timestamp: 3783.467413, video_id: 5, created_at: "2013-12-04 20:55:41", updated_at: "2013-12-04 22:08:00", user_id: 2}
# ])

# notes_saron = Note.create([
#   {body: "We use groupings for gems to specify which environments gems are active in.  Here, the rspec, capybara, and selenium gems are grouped in both the test and development environments.", video_timestamp: 2408.407864, video_id: 5, created_at: "2013-12-04 20:54:11", updated_at: "2013-12-04 20:54:11", user_id: 4},
#   {body: "Drawing the routes for the ```Post``` controller via a resource, which generates the 7 standard routes: index, new, create, edit, update, show, and destroy. ", video_timestamp: 4257.238568, video_id: 5, created_at: "2013-12-04 20:58:44", updated_at: "2013-12-04 20:58:44", user_id: 4},
#   {body: "Side-by-side comparison of routes with the `Post` controller.  Shows how a certain route corresponds to a specific action within a controller.", video_timestamp: 5100.092628, video_id: 5, created_at: "2013-12-04 21:00:50", updated_at: "2013-12-04 21:00:50", user_id: 4},
#   { body: "![DHH](http://static.guim.co.uk/sys-images/Technology/Pix/pictures/2007/12/12/heinemeier.article.jpg 'DHH')", video_timestamp: 5661.311041, video_id: 5, created_at: "2013-12-04 21:05:03", updated_at: "2013-12-04 21:05:03", user_id: 4},
#   { body: "\n\n- - Review routes\n- - Relationship between MVC\n- - Basics of CRUD app\n- - Best Practices", video_timestamp: 6357.539163, video_id: 5, created_at: "2013-12-04 21:07:32", updated_at: "2013-12-04 22:00:02", user_id: 4},
#   {body: "**Generating a Rails App** - what's the importance of `-T` ?", video_timestamp: 125, video_id: 5, created_at: "2013-12-04 20:41:41", updated_at: "2013-12-04 22:07:09", user_id: 4},
#   {body: "**Reviewing the Gemfile** - what does the 'turbolink' gem do?", video_timestamp: 590.109342, video_id: 5, created_at: "2013-12-04 20:44:01", updated_at: "2013-12-04 22:07:16", user_id: 4},
#   {body: "**Gem Version Notation:** `~> 4.0.0` means to use any minor version greater than 4.0.0 and less than 4.1.0.  `>= 1.3.0` means to use the most recent version greater than 1.3.0.", video_timestamp: 612.732023, video_id: 5, created_at: "2013-12-04 20:50:02", updated_at: "2013-12-04 22:07:24", user_id: 4},
#   {body: "Differences between the **test, development, and production databases**. Development is a database that's used during the feature development process, whereas production is a database that's used for production purposes.", video_timestamp: 1157.556356, video_id: 5, created_at: "2013-12-04 20:52:15", updated_at: "2013-12-04 22:07:44", user_id: 4},
#   {body: "Installing the **Guard gem** to automatically run rspec tests after each Rails file save action.", video_timestamp: 3783.467413, video_id: 5, created_at: "2013-12-04 20:55:41", updated_at: "2013-12-04 22:08:00", user_id: 4}
# ])

схема.rb

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

  create_table "bdme9s", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "role", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
    t.string "name", limit: 30, null: false
  end

  create_table "supplies", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
    t.string  "Description", limit: 47
    t.string  "Medline_Id",  limit: 20
    t.string  "Manuf_Id",    limit: 20
    t.integer "Qty"
    t.string  "Pkgd",        limit: 7
    t.float   "Price",       limit: 53
    t.string  "Vendor",      limit: 8
    t.string  "HCPCS",       limit: 5
    t.index ["id"], name: "id", unique: true, using: :btree
    t.index ["id"], name: "id_2", using: :btree
  end

  create_table "users", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
    t.string "userid",    limit: 30, null: false
    t.string "FirstName", limit: 20, null: false
    t.string "LastName",  limit: 30, null: false
    t.index ["id"], name: "id", unique: true, using: :btree
  end

end

новые сообщения об ошибках

bdme551@bdme551:~/bdme/bin$ rails db:seed --trace
** Invoke db:seed (first_time)
** Execute db:seed
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:abort_if_pending_migrations
============= WARNING FROM mysql2 =============
The options :user, :pass, :hostname, :dbname, :db, and :sock will be deprecated at some point in the future.
Instead, please use :username, :password, :host, :port, :database, :socket, :flags for the options.
============= END WARNING FROM mysql2 =========
rails aborted!
NoMethodError: undefined method `create' for User:Class
/home/bdme551/bdme/db/seeds.rb:11:in `<top (required)>'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `load'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `block in load'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:259:in `load_dependency'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `load'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/engine.rb:549:in `load_seed'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/tasks/database_tasks.rb:268:in `load_seed'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/railties/databases.rake:196:in `block (2 levels) in <top (required)>'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:248:in `block in execute'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:243:in `each'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:243:in `execute'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:187:in `block in invoke_with_call_chain'
/home/bdme551/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:180:in `invoke_with_call_chain'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/task.rb:173:in `invoke'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:152:in `invoke_task'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `block (2 levels) in top_level'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `each'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:108:in `block in top_level'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:117:in `run_with_threads'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:102:in `top_level'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:13:in `block in run_rake_task'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/lib/rake/application.rb:178:in `standard_exception_handling'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/rake_proxy.rb:10:in `run_rake_task'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:51:in `run_command!'
/home/bdme551/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0/lib/rails/commands.rb:18:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
Tasks: TOP => db:seed
bdme551@bdme551:~/bdme/bin$ 

person J_A    schedule 18.07.2016    source источник
comment
Не могли бы вы поделиться своим журналом консоли?   -  person Navin    schedule 18.07.2016


Ответы (2)


Ваша ошибка в User#initialize. Старайтесь избегать перезаписи инициализатора объекта ActiveRecord::Base.

Если вы сделаете это:

User.create(firstName: "xyz", lastName: "xyz")

Инициализатор будет вызываться с помощью:

def initialize(role_id = 0)
  role_id # => { firstName: "xyz", lastName: "xyz" }
end

В вашем случае вам следует создать еще один столбец, в котором хранится роль пользователя (в виде строки), или создать другую таблицу, в которой хранятся роли.

Решение:

создать миграцию:

rails g migration add_role_to_user

открыть сгенерированный мигратон:

class AddRoleToUser < ActiveRecord::Migration
  def change
    add_column :users, :role, :string, default: "guest"
  end
end

в вашей пользовательской модели:

class User < ActiveRecord::Base
  def guest?
    role == "guest"
  end
end

как вы можете видеть в своем schema.rb

Столбцы пользовательской таблицы — firstName и lastName. Итак, чтобы создать пользователя, вам нужно использовать эти ключи:

User.create(firstName: "Jack", lastName: "Sparrow")
person siegy22    schedule 19.07.2016
comment
Теперь я получаю эту ошибку: рельсы «кода» прерваны! ActiveModel::UnknownAttributeError: неизвестное имя атрибута для пользователя. - person J_A; 19.07.2016
comment
@anandamj, вы можете опубликовать свой db/shema.rb или, если вы не можете его найти, db/structure.sql - person siegy22; 20.07.2016
comment
Спасибо, что помогли мне в этом. Я разместил schema.rb для вашего обзора. Пожалуйста, дайте мне знать, где я ошибаюсь. Спасибо еще раз. - person J_A; 21.07.2016
comment
Теперь я вижу разные ошибки. Я разместил ошибки выше для вашего обзора. Я ценю это. - person J_A; 21.07.2016
comment
@anandamj Я обновил ответ, вам нужно позволить User наследовать от ActiveRecord::Base: class User < ActiveRecord::Base - person siegy22; 22.07.2016

Одной из новых особенностей рельсов 5 является то, что грабли переместились внутрь рельсов, поэтому используйте

rails db:seed

вместо

rake db:seed

Также обязательно создайте базу данных и запустите все миграции перед попыткой заполнения.

Трассировка стека указывает, что ошибка возникает в методе инициализации. Ваша пользовательская модель имеет много ролей. Предположительно, у вас есть образец для подражания, который принадлежит пользователю. В идеале у вас будет столбец role_id в пользовательской таблице. Если у вас его нет, посмотрите, как выполнить миграцию для ссылок здесь и установите значение по умолчанию для role_id равным '0'. Каждый раз, когда пользователь создается без идентификатора роли, он будет установлен на ноль. Тогда ваш начальный файл должен работать как есть.

person margo    schedule 18.07.2016
comment
Спасибо Марго за ответ. Я тоже это пробовал. Я получаю следующий ответ: rails aborted! NoMethodError: неопределенный метод `to_i' для {:name=›FirstName}:Hash Вы имели в виду? to_s to_a to_h /home/bdme5 - person J_A; 18.07.2016
comment
это звучит как ошибка в вашем начальном файле. О чем еще говорит ошибка. Указывает ли он на строку в seed.rb? - person margo; 18.07.2016
comment
Прилагаю "код" рельсы прерваны! NoMethodError: неопределенный метод to_i' for {:name=>"FirstName"}:Hash Did you mean? to_s to_a to_h /home/bdme551/bdme/app/models/user.rb:8:in initialize' /home/bdme551/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0/lib/active_record/inheritance.rb:65:in "новый" - person J_A; 18.07.2016
comment
извините, у меня возникли трудности с прикреплением журнала ошибок. - person J_A; 18.07.2016
comment
Эта ошибка указывает на строку 8 файла user.rb. Можете ли вы опубликовать соответствующий метод из этого файла. Попробуйте отредактировать свой вопрос, указав полную трассировку стека сообщения об ошибке и код из user.rb. - person margo; 18.07.2016
comment
Я также опубликую файл user.rb. - person J_A; 18.07.2016
comment
что за строка 11 в начальном файле? - person margo; 18.07.2016
comment
теперь я опубликовал полную трассировку стека и код из user.rb (извините, я новичок в stackoverflow и пытаюсь выяснить доступные варианты). Спасибо за вашу помощь. - person J_A; 18.07.2016
comment
users = User.create([ {имя: 'Имя'}, {имя: 'Фамилия'}, {user_id: 'userid'} ]) - person J_A; 18.07.2016
comment
Назначение role_id в методе инициализации сбивает с толку. Я думаю, вы можете сделать это в действии создания контроллера. def create User::ROLES.has_key?(params[:role_id].to_i) ? Пользователь::ROLES[role_id.to_i] : Пользователь::ROLES[0] - person margo; 18.07.2016
comment
Спасибо за анализ журнала ошибок. Вносить ли изменения в seed.rb? - person J_A; 18.07.2016
comment
bin/rails db:seed просто вызывает RakeTask named db:seed, по-прежнему разрешено использовать rake для выполнения задач - person siegy22; 19.07.2016
comment
Теперь, когда вы предоставили более качественную информацию, я обновил свой ответ. - person margo; 19.07.2016
comment
Теперь я получаю эту ошибку: «рельсы прерваны! ActiveModel::UnknownAttributeError: неизвестное имя атрибута для пользователя. - person J_A; 20.07.2016
comment
Похоже, вы не настроили свои таблицы/миграции БД. Вы создали миграцию для пользователя с атрибутом имени? Вы действительно должны начать новый вопрос и закрыть этот, примите мой ответ, если он вам помог. - person margo; 20.07.2016
comment
@margo Я разместил свой schema.rb; может быть, вы можете найти ошибку для меня. Пожалуйста, дайте мне знать, если у вас возникнут дополнительные вопросы. Большое спасибо. - person J_A; 21.07.2016
comment
Вы действительно должны начать новый вопрос и закрыть этот, примите мой ответ, если он вам помог. У вас есть метод create в контроллере? - person margo; 22.07.2016
comment
Большое спасибо за помощь. - person J_A; 22.07.2016