ruby-on-rails - 方法默认参数初始化的奇怪行为
问题描述
当我尝试初始化它时,它工作得很好
class Abc
def initialize(parent_id, user = nil, permission)
end
end
Abc.new(1 ,2, "some_permission")
但是当我这样做时
class Abc
def initialize(parent_id, user = nil, permission, g_data = nil)
end
end
Abc.new(1 ,2, "some_permission", 4)
我收到语法错误语法错误,意外'=',期待')' 这是一个奇怪的行为,为什么它没有将两个参数默认为 nil
解决方案
根据 ruby 文档,应该对默认值进行分组。
默认值不需要首先出现,但具有默认值的参数必须组合在一起。
因此,根据此规则,您的方法参数应如下所示:
class Abc
def initialize(parent_id, user = nil,g_data = nil,permission)
end
# OR
def initialize(parent_id, permission,user = nil,g_data = nil)
end
end
推荐阅读
- intellij-idea - IntelliJ IDEA:无法输入 { 和 [
- python - 从 load_model() 加载模型时在 Keras 中出错
- python - Django 在两个数据库中创建所有模型表
- java - RabbitTemplate convertAndSend 上的 Spring Amqp 内部 NullPointerException
- angular - 角度反应形式 - 以编程方式将输入元素绑定到反应形式
- react-native - onPanResponderRelease 后,自动动画移动无法正常工作
- apache - Apache 无法启动。设置虚拟主机。MAMP
- android - 如何使用 listview 获取从 getItemAtPosition 中选择的 id
- matlab - Best approach to speed up pixel processing in matlab
- python - Is there a way of addressing all the inputs in a program?