我不知道如何使用if语句来比较数据以便用数据库输入用户。我想实现用户可以输入产品的条形码,应用程序查看是否存储了该代码。如果找到,您可以发送以下表单,否则他们会向用户发送警告消息。这是你应该去的地方和它各自的控制器。
声明时必须使用的表格:
<%= @medicinas.each do |p| %>
INGRESE EL CÓDIGO DE BARRA DEL PRODUCTO QUE DESEA AGREGAR:
<% if codigo == @medicinas.codigo %>
INGRESE OTRO CÓDIGO DE BARRAS, EL QUE ESTA UTILIZANDO YA SE ENCUENTRA ALMACENADO
<% else %> AGREGAR MEDICAMENTO end
控制器表格:
def buscarcrear
@medicinas = Medicamentos.all
end
现在我有这个错误:未定义的局部变量或方法`codigo'用于#&lt;#:0x2e96770&gt; 提取的来源(第33行):
30:
31:
32:&lt;%@ medicinas.each do | p | %GT;
33:&lt;%if codigo == @ p.codigobarras%&gt;
我能做什么?
答案 0 :(得分:2)
我认为你做的if
/ else
陈述大多正确。不过,确保end
语句也是ERB样式<% end %>
。
<% if codigo == @medicinas.codigo %>
INGRESE OTRO CÓDIGO DE BARRAS, EL QUE ESTA UTILIZANDO YA SE ENCUENTRA ALMACENADO
<% else %>
AGREGAR MEDICAMENTO
<% end %>
@medicinas.codigo
可能有问题,除非由于某种原因,该集合会回复codigo
,我怀疑这一点?那么也许你想打电话给if codigo == p.codigo
呢?也就是说,询问具体的医学实例codigo
。
答案 1 :(得分:0)
耶稣,你不需要在视图或控制器上添加它,将它作为验证添加到你的模型上,如下所示:
class Medicina < ActiveRecord::Base
validates_uniqueness_of :codigo
end
然后在您的控制器上,检查项目是否已保存:
if @medicina@.save
redirect_to .....
else
end
检查指南的这一部分,了解如何在视图上正确显示错误:
http://edgeguides.rubyonrails.org/active_record_validations.html#working-with-validation-errors