Ruby on rails Rails:无法使用方法设置选项
例如,这里是我的回形针配置。这是我的模型文件:Ruby on rails Rails:无法使用方法设置选项,ruby-on-rails,ruby,Ruby On Rails,Ruby,例如,这里是我的回形针配置。这是我的模型文件: class File < ApplicationRecord belongs_to :attachable, polymorphic: true, optional: true has_attached_file(:attach_file, local_option) end 运行时,我遇到以下错误: 方法_缺失:未定义的局部变量或方法“局部_选项” 类别:0x007fc9be09dac8>(名称错误) 我不知道为什么rub
class File < ApplicationRecord
belongs_to :attachable, polymorphic: true, optional: true
has_attached_file(:attach_file, local_option)
end
运行时,我遇到以下错误:
方法_缺失:未定义的局部变量或方法“局部_选项”
类别:0x007fc9be09dac8>(名称错误)
我不知道为什么ruby/rails没有看到local\u选项
方法。请告诉我怎么做
谢谢它应该是类实例方法,而不是实例方法
def self.local_option
{
storage: :filesystem,
path: 'public/:class/:id/:basename.:extension'
}
end
瞧,错误消失了
建议:因为它是不变的数据,所以我将它放入一个常量:
LOCAL_FILE_OPTIONS = {
storage: :filesystem,
path: 'public/:class/:id/:basename.:extension'
}.freeze
现在
我已经像你说的那样改变了,但是错误仍然是一样的。@TrầnKimDự 不可能。这是我的完整代码:我仍然遇到同样的错误;(如果我使用常量解决方案,我会遇到错误:
未初始化常量附件::本地\u文件\u选项
@TrầnKimDự 这是不可能的。如果在正确的类中使用hte常量,请仔细检查命名,检查。重新启动服务器。调试
LOCAL_FILE_OPTIONS = {
storage: :filesystem,
path: 'public/:class/:id/:basename.:extension'
}.freeze
has_attached_file(:attach_file, LOCAL_FILE_OPTIONS)