我的应用中有两个模型:list.rb
和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
文件创建的?
谢谢!
答案 0 :(得分:0)
首先需要获取列表,就像在show
方法中一样。确保import
是成员路由。
@list = List.find(params[:id])
然后,您需要修改import
方法,它会为您的列表选择第二个参数。
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