我有什么方法可以在rails方法名称中使用'@'符号吗? e.g。
def @method_name
end
Rails似乎不喜欢它。
我想这样做是为了遵守一些外部约定(在rails之外)。
答案 0 :(得分:1)
可以这样做:
define_method('@test') do
'test'
end
然后必须使用以下方法调用此方法:
model.send('@test')
我不推荐它,因为它将是丑陋和复杂的,这违背了红宝石的哲学。但它可以做到。
答案 1 :(得分:0)
我最终使用的是:
在我的控制器中:
@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
的语法