簡體   English   中英

:條件聲明和Ruby Rails

[英]:Condition statement and Ruby Rails

我正在嘗試使這些語句起作用:

@all_ratings = ["G","PG","PG-13","R"]
@valid_ratings = params["ratings"]
@movies = Movie.find(:all ,  :conditions => {@valid_ratings[:rating.upcase] => "1"}   )

但是我得到了錯誤:

undefined method `to_sym' for nil:NilClass

當我應該去比賽的時候。

輸入示例為:

"ratings"=>{"PG-13"=>"1"}

我要去哪里錯了?


更多信息:

該表具有三個字段,標題,發行日期和評級,非常簡單。 評分選項已在@all_ratings中說明。

它告訴你@valid_ratings nil

您可能嘗試這樣做?

@valid_ratings = Rating.find(params["ratings"])

Rails 3.x:

@all_ratings = ["G","PG","PG-13","R"]
@valid_ratings = params["ratings"]
# Is @valid_ratings the same as you example, "ratings"=>{"PG-13"=>"1"}?
# It would be easiest to pass a subset of @all_ratings such that the params
# get converted to something like this: "ratings"=>["G", "PG"]
Movie.where(:rating => valid_ratings).all
# SQL: SELECT * FROM movies WHERE rating IN ('G','PG')

我不確定您正在嘗試使用:rating.upcase 是否有一個名為rating的變量? :rating是一個符號。 upcase不是Symbol的方法。

暫無
暫無

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

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