错误的参数个数(0表示1)Rails错误

时间:2011-02-22 10:52:34

标签: ruby-on-rails

我在下面的方法中有错误

 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”,“丑陋”等)。我试着基本上在猫表中循环,进入行并检查是否有“美”,然后做一些事情。但是,它返回我输入错误的参数。我无法理解错误的参数,这是进入“猫名列”内部循环的正确方法 谢谢你的回答。

2 个答案:

答案 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