Как использовать rails api find_or_create_by в рубине?

T.Kul спросил: 28 марта 2018 в 02:45 в: ruby-on-rails

Я попытался запустить тест gem для rails. В тесте я нахожусь в ruby ​​not rails. Цель этого кода - создать модули рельсов.

Но такие коды будут шаблон должен запускаться в rails.Проблема приходит, когда тест встречается с чем-то вроде

my_module= Myprogram::Module.find_or_create_by
                                             :module_code=>my_module.code, 
                                             :code=> scode, 
                                             :name=>sname

, затем

error: Undefined method find_or_create_by

Мой первый, хотя должен потребовать ( какой) камень, который имеет этот метод.

Может ли кто-нибудь помочь мне?


1 ответ

T.Kul ответил: 29 марта 2018 в 02:49

Myprogram :: Module - это класс mongoid, использующий пространство имен для этого класса. Я исправил ошибку с помощью.

  1. требуется соответствующий гем, который является mongoid (спасибо @marmeladze и mikwat)
  2. require_relative по отношению к классу (без этого покажет NameError: неинициализированная константа Myprogram :: Module :: Mongoid

В моем случае здесь код:

.
.
require 'mongoid'
require_relative '../lib/generators/myprogram/templates/app/models/myprogram/module.rb'