0

list.rbアプリにとの 2 つのモデルがあります。contacts.rbこれらにはhas_and_belongs_to_many関係があります。私の中に次のメソッドがありますcontacts_controller.rb

def import
  Contact.import(params[:file])
  redirect_to contacts_path, notice: "Contacts were imported."
end

Listアクションで を作成した後、彼のメソッドを呼び出していlist#createます。set/inputファイルを介してレコードが作成される上記のlist_idインポート方法にどのようにアクセスできcsvますか?

ありがとうございました!

4

1 に答える 1

0

たとえばshowメソッドで行うように、最初にリストを取得する必要があります。importそれがメンバールートであることを確認してください。

@list = List.find(params[:id])

次に、メソッドを変更importして、リストの 2 番目のパラメーターを取る必要があります。

def Contact.import_for_list(file, list)
   # loop over csv lines
     # for each line you create a contact element
     # and then add the new contact element to the list
     list.contacts << newly_created_contact

     # or you create the contact from the list object
     list.contacts.build(....)
   # depending how you created the objects you need to save them explicitly
end

最後に、変更したメソッドを呼び出します

def import
  @list = List.find(params[:id])
  Contact.import_for_list(params[:file], @list)
  redirect_to contacts_path, notice: "Contacts were imported."
end
于 2015-10-03T12:55:17.527 に答える