1

Rails メソッド名に「@」記号を使用する方法はありますか? 例えば

def @method_name

end

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 に答える