我想通过模型中的方法进行自定义搜索。其中一个搜索条件如下:
left = params[:left][:left_id]
right = params[:right][:right_id]
status = give_status(left, right)
where << "status_id_number = #{status}"
params来自两个下拉菜单。我的问题是设置状态值。 如果我这样做,它会正确设置左侧参数的值:
def self.give_status(left, right)
return left
end
我想让它设置如下。比较左右变量,然后根据条件分配某个返回值。即使我将左右设置为1,下面的代码也会返回2。
def self.give_status(left, right)
if left == 1 and right == 1
return 1
else
return 2
end
end
答案 0 :(得分:3)
问题是您的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