0

クライアントでRails3スコープを作成して、次のことを実行したいと思います。

select * from clients c, dependents d
where d.last_name like '%ss%' and c.id = d.client_id;

依存モデル:

class Dependent < ActiveRecord::Base
  belongs_to :client
  scope :by_last_name, (lambda do |name| { :conditions => ['last_name LIKE ?', "#{name}%"]} end )

クライアントモデル:

class Client < ActiveRecord::Base
  has_many :dependents, :dependent => :destroy

構文的に機能するスコープ結合をまだ取得できていません。扶養家族の姓はパラメータとして渡す必要があります。ありがとう。

4

2 に答える 2

0

次のことを試してください。

scope :by_last_name, lambda {|name| where("dependents.last_name like ?", "'%#{name}%'")
于 2012-10-26T10:29:48.613 に答える
0

これを試して:

class Client < ActiveRecord::Base
  scope :by_last_name, lambda { |last_name| includes(:dependents).where("dependents.last_name LIKE ?", "#{last_name}%") }

その後、電話

Client.by_last_name "last_name"

編集:問題を反映するようにコードを変更しました。また、find_by_id(1)はfind(1)と同じですが、何も見つからない場合にエラーをスローせず、代わりにnilを返します。

于 2012-10-26T10:32:25.190 に答える