我有什么方法可以在 rails 方法名称中使用“@”符号吗?例如
def @method_name
end
Rails 似乎不喜欢它。
我想这样做以遵守一些外部约定(rails 之外)。
我有什么方法可以在 rails 方法名称中使用“@”符号吗?例如
def @method_name
end
Rails 似乎不喜欢它。
我想这样做以遵守一些外部约定(rails 之外)。
可以这样做:
define_method('@test') do
'test'
end
然后必须使用以下方法调用此方法:
model.send('@test')
我不会推荐它,因为它既丑陋又复杂,这违背了 ruby 的哲学。但这是可以完成的。
我最终使用的是:
在我的控制器中:
@job = Job.first
render :json @job.as_json( methods: :@id )
在 Job.rb 中
define_method('@id') do
return url_for( :controller => 'jobs', :action => 'create', :id => id )
end
现在,当我渲染我的 json 时,我得到:
"@id":"http://localhost:3000/jobs?id=1"
注意:@id 是为了符合 json-ld 的语法