Rails メソッド名に「@」記号を使用する方法はありますか? 例えば
def @method_name
end
Railsはそれを好まないようです。
いくつかの外部規則(レールの外部)に準拠するためにそれを行いたいです。
Rails メソッド名に「@」記号を使用する方法はありますか? 例えば
def @method_name
end
Railsはそれを好まないようです。
いくつかの外部規則(レールの外部)に準拠するためにそれを行いたいです。
次のように実行できます。
define_method('@test') do
'test'
end
次に、このメソッドを次のように呼び出す必要があります。
model.send('@test')
これは見苦しく複雑であり、Ruby の哲学に反するため、お勧めしません。しかし、それは可能です。
このビデオのようなもの: https://www.youtube.com/watch?v=eVpVHGiELf8
私が最終的に使用したもの:
私のコントローラーで:
@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 の構文に準拠する必要があります。