Ruby on rails 在rails方法名称中使用@symbol

Ruby on rails 在rails方法名称中使用@symbol,ruby-on-rails,method-names,Ruby On Rails,Method Names,我有没有办法在rails方法名中使用“@”符号?e、 g def @method_name end Rails似乎不喜欢它 我想这样做是为了遵守一些外部约定(rails外部)。可以这样做: define_method('@test') do 'test' end 然后必须使用以下命令调用此方法: model.send('@test') 我不推荐它,因为它既丑陋又复杂,这违背了ruby的哲学。但这是可以做到的 有点像这个视频:我最终使用的是: 在我的控制器中: @job = Job.f

我有没有办法在rails方法名中使用“@”符号?e、 g

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的语法

我可以说的简单一点是,
@
符号对许多编程语言都有特殊的意义。因此,任何强制使用它的惯例(以我自己的观点)都是错误的惯例。谢谢,这正是我所需要的。