独自のSQLを作成する場合に最もよく説明される、何らかの関係を持つモデルがあります。簡単にするために、私は次のようなものを書きます(たとえば、MyModel.rbで):
has_many :platform_spots, :finder_sql => "SELECT * FROM platform_spots WHERE id=#{id}"
モデルの説明で。
Railsコンソールを実行して、プルしようとすると
MyModel.find(:first)
私は得る
NameError: undefined local variable or method `id' for #<Class:0x000001039e4b80>
一重引用符を使用する必要があるため、次のように変更します。
has_many :platform_spots, :finder_sql => 'SELECT * FROM platform_spots WHERE id=#{id}'
今、コンソールで
ecs = MyModel.find(:first)
ecs.platform_spots
エラーが発生します
PlatformSpot Load (0.2ms) SELECT * FROM platform_spots WHERE id=#{id}
Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM platform_spots WHERE id=#{id}
ActiveRecord::StatementInvalid: Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM platform_spots WHERE id=#{id}