いくつかのコンテキスト:ActiveRecordと関係、find_by_sqlまたはnamed_scopeから未使用レコードを取得していますか?
私はこの
俳優にhas_manyは
プロンプトプロンプトにhas_many BELONGS_TO、意思決定意思決定にhas_manyの行為BELONGS_TO、
法belongs_toの俳優使徒のように見えるいくつかのモデルを持っています決定
私は何をする必要があることは目にありますすべての利用可能なプロンプトのうち、まだ使用されていないランダムなプロンプトを取得します。私のレールのアプリで
は、俳優はそれらを作るためにいくつかの選択肢を与えるプロンプトが提示されています。彼らが選択をすると(Decision)、それはActとしてdbに保存されます。
named_scopeとfind_by_sqlのさまざまな繰り返しを試しましたが、どれもうまくいきませんでした。私の思考が彼らのものから始めるのが正しいかどうかはわかりません。どこから始めるべきかを知っているようです。
私は、これは私が直面してるかのアイデアを与える願っています。私は攻撃の計画を形成するための一般的な指標さえも高く評価します。
ありがとうございます!
編集
数時間のために、この上で咀嚼した後、私が働いて何かを持っているが、それは非常に厄介だし、私のログはSQLコールで満たされているので、それは間違いなく、批判的な目を立てることができます。
def used_prompts
prompts = Array.new
if self.acts && self.acts.length >= 1
self.acts self.acts.each { |act| prompts.insert(0, act.decision.prompt.id) }
return prompts.sort
else
return [0]
end
end
そしてActorsController中:アクターモデルでは
named_scope :available, lambda { |used|
{ :conditions => ["id NOT IN (?)", used ] }
}
:プロンプトモデルで
@prompt = Prompt.available(@actor.used_prompts).find(:first, :order => "RAND()")
明らかused_promptsであれば、ブロックが1人の有罪当事者でありますここでは、私はself.acts.decisions.eachまたはselfを行うことができないので、それに対処するより良い方法を知らないそのようなもの。たぶん誰かが学校に私:)
は本当にFYIあなたのクエリが遅くなります。 –