условные заявления - PullRequest
       2

условные заявления

0 голосов
/ 27 марта 2011

Я хочу выполнить индивидуальный поиск по методу в моей модели. Одно из условий поиска выглядит так:

      left = params[:left][:left_id]
      right = params[:right][:right_id]

      status = give_status(left, right)

      where << "status_id_number = #{status}"

Параметры поступают из двух выпадающих меню. Моя проблема с установкой значения для статуса. Если я делаю что-то вроде этого, он правильно устанавливает значение из левого параметра:

         def self.give_status(left, right)
           return left
         end

Я бы хотел настроить его, как показано ниже. Где левая и правая переменные сравниваются, а затем присваивается определенное возвращаемое значение на основе условий. Код ниже вернет 2, даже если я установил влево и вправо в 1.

       def self.give_status(left, right)
         if left == 1 and right == 1
          return 1
         else 
          return 2
        end
       end

1 Ответ

3 голосов
/ 27 марта 2011

проблема в том, что ваш param вернет строки

def self.give_status(left, right)
  if left.to_i == 1 and right.to_i == 1
    1
  else 
    2
  end
end

Короткую форму

def self.give_status(left, right)
  left.to_i == 1 && right.to_i == 1 ? 1 : 2
end

или получит ее правильно в начале:

left = params[:left][:left_id].to_i
right = params[:right][:right_id].to_i
status = give_status(left, right)
where << "status_id_number = #{status}"

def self.give_status(left, right)
  left == 1 && right == 1 ? 1 : 2
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...