从方法或服务类创建的rails对象不会自动初始化

时间:2016-09-12 03:48:50

标签: ruby-on-rails ruby

我对Rails相对较新,并尝试从模型中创建一个对象(我也尝试过在app / services /中创建的服务。)/ p>

对象被创建,但是当我访问试图在对象上调用方法的页面时失败(我想使用.find(id)并且我得到关于'nil'方法的消息,因为这样):

当我在nil方法错误后检查控制台中的对象时,已创建对象,但所有变量类型都设置为'nil':

如果我从控制台创建同一个类的新对象,则该对象具有键入的变量:

Trans(id:integer,transaction_id:integer,sender_id:string,recipient_id:string,created_at:datetime,updated_at:datetime,amount:float)

创建对象的代码是

transaction = Trans.new
transaction.find(id)

我是在模型内部的方法中调用它。我通过将所有内容放入服务并从中创建服务对象来尝试相同的操作。结果是一样的。

这是否意味着构造函数/初始化程序由于某种原因未被调用?我没有覆盖或更改初始化。

这是使用Rails 4。

我正在尝试创建一个对象,以便查询数据库。

1 个答案:

答案 0 :(得分:0)

虽然我已经工作了好几个小时,但在发布问题后不久我就发现了什么问题。

需要像这样创建对象:

tf.argmin(input, dimension, name=None)

而不是

trans = Trans.find(id)

这对我来说似乎是违反直觉的,但它确实有效。

我希望这可以节省几个小时我失去的人!