2014-10-22 32 views
1

有沒有什麼方法可以讓我在rails方法名中使用'@'符號?例如在rails方法名中使用@符號

def @method_name 

end 

Rails似乎並不喜歡它。

我想要遵守一些外部約定(外部導軌)。

+1

簡單的事情,我可以說的是,'@'符號有特殊含義很多編程語言。因此,任何強制使用它的慣例(根據我自己的看法)都是錯誤的慣例。 – 2014-10-22 10:50:23

回答

1

它可以這樣做:

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

這種方法則已經與被稱爲:

model.send('@test') 

我不會推薦它,因爲這將是醜陋的和複雜的,這是反對紅寶石哲學。但這是可以完成的。

有點像這個視頻:https://www.youtube.com/watch?v=eVpVHGiELf8

+0

謝謝,正是我需要的。 – user3711600 2014-10-23 11:01:06

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

相關問題