Open Masa321 opened 10 years ago
検索のインタフェースを作り込む必要あり。 1と2はFilament.where("color = ? or material = ?", "red", "ABS")とかして、Filamentを検索した後に、そのFilamentを所持しているプリンタAND使用可能、で検索すればOK。
このためにテーブルの再構成をしました。 0a85f51118da49f597119ddf004f84ffc7cda0e5
現在、この検索は以下のコードを実行すればよい。 "red" "ABS" trueで検索をかけるとすると(当然、どれかが欠けているときはこの限りではない)、
f = Filament.where("color = ? or material = ?", "red", "ABS")
p = f.printer.where(condition: true)
ここ勉強を兼ねて理解したいので、丁寧に教えてほしい。 例えば、materialはABSで色はredとyellowのフィラメントを持つプリンターを表示するなどの構成をどのように実装すればいいのか教えてほしい。
論理和としてのロジックをUIの構成を含めた上で理解して実装できると後の開発に役立つと思われ。
金曜日に会った際にでも!
承知です!
間違ってたらごめん。
Printerモデルにbelongs_to :filament、Filamentモデルにhas_many :printer と書いてあるけど、これは逆なのでは?
has_and_belongs_to_many DBのprinter_idを消して、 新しくprinters_filamentsテーブルの作成
プリンター新規作成のUXについて。 色の選択肢は有限なのである程度staticにする。 素材はユーザの入力により随時種類を追加できるようにしたいが、自由に入力されると困る。利用者が検索する際の大事な要素になるので。 現時点ではstaticなpre-definedな選択肢による入力>filamentテーブル内のidと照合して、新規作成されたprinter_idと結ぶことにする。
後にDBからの選択肢の出力と、新しい種類の追加を行えるようにする。
「TypeError: tgtInput is null」というエラーが出ている。具体的には下記の箇所。 tgtInput.onkeydown = incSearch;
timeout あきらむ
終わるまではcloseしない。
やりたいこと。 @printers.materialのor(ABSorPLAの文字列で検索して表示) @printers.material_colorのor @使用可能状態での条件表示 それぞれの条件はANDで表示する。 *プリンター一覧にあるサイズによる検索は排除します。
最終的に@printersに格納された情報を一覧に表示するので、 いま実装している方法だと難しい。