gpt4 book ai didi

ruby - 连字符键名称上的 MongoMapper 语法错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:42 25 4
gpt4 key购买 nike

尝试使用名为“buy-only”的键为文档设置 MongoMapper 对象。当我尝试启动应用程序时,我得到了这个

(eval):1: syntax error, unexpected '-', expecting ';' or '\n'
def buy-only ^
(eval):3: syntax error, unexpected keyword_end, expecting end-of-input
.rvm/gems/ruby-2.0.0-p0/gems/mongo_mapper-0.12.0/lib/mongo_mapper/plugins/keys.rb:88:in `module_eval'
.rvm/gems/ruby-2.0.0-p0/gems/mongo_mapper-0.12.0/lib/mongo_mapper/plugins/keys.rb:88:in `create_accessors_for'
.rvm/gems/ruby-2.0.0-p0/gems/mongo_mapper-0.12.0/lib/mongo_mapper/plugins/keys.rb:27:in `block in key'
.rvm/gems/ruby-2.0.0-p0/gems/mongo_mapper-0.12.0/lib/mongo_mapper/plugins/keys.rb:25:in `tap'
.rvm/gems/ruby-2.0.0-p0/gems/mongo_mapper-0.12.0/lib/mongo_mapper/plugins/keys.rb:25:in `key'
.rvm/gems/ruby-2.0.0-p0/gems/mongo_mapper-0.12.0/lib/mongo_mapper/plugins/protected.rb:20:in `key'

这是我对模型中的键的定义:

key :'buy-only', Boolean,

似乎 MongoMapper 正在尝试自动生成一个函数来处理仅限购买的 key ,并且由于连字符不是有效语法,因此它失败了。这个错误有什么解决方法吗?请不要质疑在 Mongo 的属性名称中使用连字符。如果我能改变这一点,我就不会问了。

最佳答案

MongoMapper 目前无法正确支持带连字符的键,因为它将尝试为这些键创建访问器方法,而 buy-only 在 Ruby 中不是有效的方法名称。

但是,我有一个分支,希望很快可以合并到 master,其中包括 key 别名。这会让你做类似的事情:

key :buy_only, :alias => "buy-only"

您可以在这里找到分行:https://github.com/cheald/mongomapper/tree/alias_keys

关于ruby - 连字符键名称上的 MongoMapper 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com