我正在尝试在输入记录之前搜索我的数据库,方法是:
Product.update_or_create_by_name_and_date_and_applicationURL_and_server_and_addi_servers(app_name, app_date,url_app,server_name,addi_servers)
问题是我得到一个未定义的方法异常!
是否有另一种方法可以在输入之前搜索相同的记录?
我正在尝试在输入记录之前搜索我的数据库,方法是:
Product.update_or_create_by_name_and_date_and_applicationURL_and_server_and_addi_servers(app_name, app_date,url_app,server_name,addi_servers)
问题是我得到一个未定义的方法异常!
是否有另一种方法可以在输入之前搜索相同的记录?
您应该使用两个步骤:
#Suggestion 1
obj = Product.find_or_create_by_...
#Suggestion 2
obj = Product.find_or_initialize_by_...
obj.update_attributes hash_here
重读您的问题,如果您尝试查找具有已知属性的对象,我真的不明白您要更新什么。无论如何,如果某些字段用于识别而某些字段用于更新,您只需稍微调整我的答案即可。
我会在你的模型中定义一个函数:类似于
Product.find_by_everything
您在其中写出搜索的所有参数,而不是使用长命名方法。
然后,如果返回 nil,则创建产品。这似乎不是使用内置 activerecord 命名方法的好用例。