我有一个表单根据用户输入的设备名称以及其他一些数据创建新设备。我想在我的设备上运行查询以查看它们输入的名称是否已存在,以便它们不会创建具有重复名称的设备。无论我如何设置查询来执行搜索,该方法始终表明设备已经存在,即使它不存在。除了条件语句之外,代码将适当地创建设备。任何想法如何我可以解决这个问题?Rails - 将查询结果作为条件使用
在设备控制器的方法:
def create
if Device.where('name' => params[:name])
respond_to do |format|
format.html { redirect_to :back, notice: 'Cannot create device. It already exists.' }
end
else
#Code that creates device
#respond_to code
end
end
此解决方案有效,但我无法让我的应用程序重定向失败。它只是进入rails错误页面,指出'Name already exists'。有任何想法吗?你是否有效地通过在if语句中调用它来实现保存?在我目前的代码中,device.save!在if语句之前检查是否存储.s – 2013-03-19 13:09:46
我更新了典型响应的答案,在这种情况下,呈现'new'动作并使用'flash'显示错误消息。 – 2013-03-19 13:13:13