2014-10-22 5 views
1

레일즈 메소드 이름에 '@'기호를 사용할 수 있습니까? 예 :레일즈 메소드 이름에서 @ 기호 사용

def @method_name 

end 

레일스가 마음에 들지 않습니다.

일부 외부 규칙 (레일 외부)을 준수하기 위해 수행하고 싶습니다.

+1

JSON-LD의 구문을 준수하는 것입니다. 따라서, 그 사용을 강요하는 모든 협약은 (내 자신의 의견으로) 틀린 협약이다. –

답변

1

그것은 다음과 같이 수행 할 수 있습니다

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

다음 호출 할 수있다이 방법 :

model.send('@test') 

이 추한 복잡 할 것이고, 그 때문에 나는 그것을 권하고 싶지 않다 루비의 철학에 맞서서 그러나 그것은 할 수 있습니다. 이 비디오 등을

종류 : 내 컨트롤러에서

: 내가 사용 결국 무엇 https://www.youtube.com/watch?v=eVpVHGiELf8

+0

감사합니다. 정확하게 필요한 것. – user3711600

0

define_method('@id') do 
    return url_for(:controller => 'jobs', :action => 'create', :id => id) 
end 

이제 Job.rb에서

@job = Job.first 
render :json @job.as_json(methods: :@id) 

때 내 json 렌더링 내가 얻을 :

"@id":"http://localhost:3000/jobs?id=1" 

참고 : @id는 내가 말할 수있는 간단한 일이`기호`@ 많은 프로그래밍 언어에 특별한 의미를 가지고 있다는 것입니다