我在下面的方法中有错误
def mymethod
cat = Cat.find_by_cat_id_and_animal_id_and_name(catid, haustierid, cat_name)
if cat.name.nil?
if cat.name == "beauty"
#doworkhere
end
end
end
问题是,我有一张猫牌桌,名字有一列。在cat名称中,有不同的行包含名称(“beauty”,“丑陋”等)。我试着基本上在猫表中循环,进入行并检查是否有“美”,然后做一些事情。但是,它返回我输入错误的参数。我无法理解错误的参数,这是进入“猫名列”内部循环的正确方法 谢谢你的回答。
答案 0 :(得分:3)
我认为你的查询查询应该是:
cat = Cat.find_by_id_and_animal_id_and_name(catid, haustierid, cat_name)
而不是
cat = Cat.find_by_cat_id_and_animal_id_and_name(catid, haustierid, cat_name)
...谢谢
答案 1 :(得分:0)
您的代码中有多个错误,但没有人可以解释您收到的错误消息。
您可能需要在if
。
与此同时,让我展示一些问题
cat = Cat.find_by_cat_id_and_animal_id_and_name(catid, haustierid, cat_name)
你可能意味着
cat = Cat.find_by_id_and_animal_id_and_name(catid, haustierid, cat_name)
此外,您可能希望使用范围(如果使用Rails 2,则使用命名范围)
if cat.name.nil?
if cat.name == "beauty"
#doworkhere
我不会输入第二个if
。名称不能同时为nil和String。
另外,假设你想说!nil?你可以通过
if !cat.name.nil? && cat.name == "beauty"
#doworkhere
或只是
if cat.name == "beauty"
#doworkhere