私の質問は次のとおりです。
私は2つのモデルを持っています:製品とブランド。現在、製品フォームでは、ユーザーは自分の製品のブランドを(選択リストを介して)選択できます。ただし、ブランドが存在しない場合は、ブランド/新しいフォームにリダイレクトするリンクをクリックして、新しいブランドを作成できます。
不足しているブランドの作成を製品フォーミュラで直接処理する方法はありますか?
私は十分に明確であることを望みます。
回答ありがとうございます。
私の質問は次のとおりです。
私は2つのモデルを持っています:製品とブランド。現在、製品フォームでは、ユーザーは自分の製品のブランドを(選択リストを介して)選択できます。ただし、ブランドが存在しない場合は、ブランド/新しいフォームにリダイレクトするリンクをクリックして、新しいブランドを作成できます。
不足しているブランドの作成を製品フォーミュラで直接処理する方法はありますか?
私は十分に明確であることを望みます。
回答ありがとうございます。
フォーム自体で、ユーザーがドロップダウンからブランドを選択するか、テキスト フィールドに新しいブランドの名前を入力できるようにすることができます。ラジオを使用して、ユーザーにこれら 2 つのアクションの両方ではなく、どちらかを強制的に実行させます。<option>
要素には、ブランド ID ではなく、ブランド名に対応する値が含まれます。
次に、Rails 側ではfind_or_create_by_name
、ブランド名が一意であると仮定して、 を使用できます。
# assuming a params structure like params[:product][:brand_name]
class Product < ActiveRecord::Base
def brand_name=(name)
self.brand = Brand.find_or_create_by_name(name)
end
end
コントローラーは、次のような単純な処理を行います。
@product = Product.new(params[:product])
私は個人的にこのようなものに jQuery を使用します。ユーザーに選択リストから「新しいブランド」などを選択してもらい、入力プロンプトを表示します。AJAX を使用して新しいブランドを作成し、新しいブランドが選択されたフォームでブランド リストを再作成します。