ほとんど関係のない問題を解決しようとしているときに、Rails ActiveRecord テスト ファイルのコードに出くわしました: http://github.com/rails/rails/blob/master/activerecord/test/models/post.rb
belongs_to :author_with_posts, -> { includes(:posts) }, :class_name => "Author", :foreign_key => :author_id
-> "arrow" がリテラル ラムダを作成することは理解していますが (または私は理解していますか?)、どのように、またはなぜこれがbelongs_to(name, options = {})の有効な引数セットなのかわかりません。私は次のようなものを期待していたでしょう:
belongs_to :author_with_posts, <something that results in a key/value pair>, :class_name => "Author", :foreign_key => :author_id
前述のファイルには、この構造のインスタンスがたくさんあり、問題なく動作しているように見えますが、その理由はまったくわかりません。私自身の (明らかに) 同様の ActiveRecord アソシエーションで -> 構文を使用しようとしましたが、うまくいきませんでした。
ArgumentError: wrong number of arguments(3 for 2)
非常に基本的なものが欠けているようですか?それとも、post.rb のコードには見た目以上のものがあるのでしょうか?