0

我的应用程序中有两个模型: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/inputlist_id这个导入方法,其中记录是通过csv文件创建的?

谢谢!

4

1 回答 1

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
于 2015-10-03T12:55:17.527 回答