1

我有什么方法可以在 rails 方法名称中使用“@”符号吗?例如

def @method_name

end

Rails 似乎不喜欢它。

我想这样做以遵守一些外部约定(rails 之外)。

4

2 回答 2

1

可以这样做:

define_method('@test') do
  'test'
end

然后必须使用以下方法调用此方法:

model.send('@test')

我不会推荐它,因为它既丑陋又复杂,这违背了 ruby​​ 的哲学。但这是可以完成的。

有点像这个视频:https ://www.youtube.com/watch?v=eVpVHGiELf8

于 2014-10-22T17:00:54.497 回答
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 的语法

于 2014-10-23T11:00:47.087 回答