私は2つのモデル:ドキュメントとキーワードを持っています。彼らはお互いに関係しているので、私はネストされたフォームを作成することができるので、お互いにとお互いに関係しています。それはうまくいく。 ruby map find_eachは配列に追加できません
だからのparamsに、私はこのように別々の配列にキーワードを入れてコントローラで"document"=>{"book_id"=>"1", "keywords"=>{"keywords"=>"term, administration, witness "}, ...
を持っている:
q = params[:document][:keywords].fetch(:keywords).split(",")
これは、あまりにもうまく動作します。
私が今必要とするのは、キーワードidsを取得して配列に入れることです。その配列の各要素は、結合表に移入します。
私はこれを試してみた:
a = Array.new
q.each do |var|
id = Keyword.select(:id).find_by keyword: var
a << id
id
end
しかし、サーバのログはすべて3つのSQL要求が実行され、それらが正しいことを示しているが、これは唯一、[#<Keyword id: 496>, nil, nil]
を答えます。
また、私はこれを試してみました:
a = Array.new
q.map do |e|
Keyword.where(motcle: e).select(:id).find_each do |wrd|
a << wrd.id
end
end
その後、再び、これが唯一のキーワードの最初のIDを返す、サーバーログはすべて3つのSQL要求が実行されていることを示しているが。すべてのSQLリクエストを実行するサーバにもかかわらず、
1 /なぜIDが配列に追加されていない:私は取得しようとしている何
は
a = [496, 367, 2398]
は、だから私は2つの質問があるのですか?で作成する方法を
2 /要求が
SELECT "motclefs"."id" FROM "motclefs" WHERE "motclefs"."motcle" in ('déchéances','comtesse') ORDER BY "motclefs"."id";
おかげだろうレール!
でしょうか? – Stefan
はい、それは簡単でしょうが、jsonのjquery-uiオートコンプリート関数でキーワードが取得されるのを見ることができません。 ''キーワード "=>" 496 "、" administration "=>" 966 "、" witness "=>" 1046 "}' – thiebo
のようなものが必要です。 keyword_ids "=> [496、966、1046]' – Stefan