簡體   English   中英

參數數量錯誤(0表示1)Rails錯誤

[英]wrong number of arguments (0 for 1) Rails error

我下面的此方法有一個錯誤

 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

問題是,我有一個貓表,其中有一列名稱。 貓名內的地方有不同的行包含名字(“ beauty”,“ ugly”等)。 我試圖基本上在cat表中循環,進入各行,檢查是否有“ beauty”,然后做點什么。 但是,它返回我輸入了錯誤的參數。 我無法理解錯誤的參數,這是進入“貓名列”內部循環的正確方法嗎?謝謝您的回答。

我認為您的查找查詢應該是:

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)

謝謝....

您的代碼中有幾個錯誤,但是沒有人可以解釋收到的錯誤消息。 您可能需要在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和字符串。 另外,假設您想說!nil? 您可以通過以下方式更簡潔地編寫它

if !cat.name.nil? && cat.name == "beauty"
    #doworkhere

或簡單地

if cat.name == "beauty"
    #doworkhere

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM