- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在玩rails console
使用 Neo4j 并尝试创建一个像这样的模型类:
Object.const_set("TestNode", Class.new(super_class=Neo4j::Rails::Model))
node = TestNode.new
node.save
保存实例我收到一堆错误:
node.save
NoMethodError: undefined method `each' for nil:NilClass
from /Users/oskbor/.rvm/gems/jruby-1.6.7.2/gems/neo4j-2.0.0-java/lib/neo4j/rails/attributes.rb:57:in `init_on_create'
from /Users/oskbor/.rvm/gems/jruby-1.6.7.2/gems/neo4j-2.0.0-java/lib/neo4j/rails/node_persistance.rb:16:in `create'
from /Users/oskbor/.rvm/gems/jruby-1.6.7.2/gems/neo4j-2.0.0-java/lib/neo4j/rails/callbacks.rb:39:in `create_with_callbacks'
from /Users/oskbor/.rvm/gems/jruby-1.6.7.2/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:417:in `_run__1980184148__create__1722973119__callbacks'
from org/jruby/RubyKernel.java:2076:in `send'
...
class TestNode < Neo4j::Rails::Model
end
最佳答案
正如 Andreas Ronge 评论的那样,使用 Object.const_set 时不会触发某些回调。评估字符串有效,所以这是我的解决方案:
name ="Classname"
super_klass ="Neo4j::Rails::Model"
string_to_eval = "class #{name} < #{super_klass}; end;"
eval(string_to_eval, TOPLEVEL_BINDING)
关于ruby-on-rails-3 - 使用 Object.const_set 创建 rails 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12237978/
我正在开发一个 Rails 应用程序,其中在一个类中,常量是使用 const_set constant_name, value 定义的。 . 我知道我们可以直接在类中定义常量,只需指定常量的 CAPI
我要mock a class with Ruby . 如何编写处理样板代码的方法? 以下代码: module Mailgun end module Acani def self.mock_mail
我正在尝试使用变量“命名”一个新类。 从 antoher thread 我得到了一些关于使用 och 'const_set' 的初学者,当我尝试这个时它工作正常: name = "Person" at
如果之前已经定义了一个类,我如何告诉它从父类继承 例如: class Parent .. end class Klass .. end 现在我希望它继承自Parent 我无法重新打开类并设置它
我有一堆模块想在命名空间中定义,我将它们放在初始化程序中,但我得到了“错误的常量名称”异常: # this is a self-contained example require 'active_su
难道他们不应该做同样的事情吗?为什么会这样?此时,出于必要,我在我的代码中使用了 module_eval,但 const_set 似乎更具可读性。无论如何,我真的很想知道为什么会这样。 代码如下: c
我在玩rails console使用 Neo4j 并尝试创建一个像这样的模型类: Object.const_set("TestNode", Class.new(super_class=Neo4j::R
我是一名优秀的程序员,十分优秀!