清除rails控制器

时间:2016-04-26 02:28:25

标签: ruby ruby-on-rails-4

我有像这样的控制器动作

def search
    if params[:latitude].present? && params[:longitude].present? && params[:longitude].strip != "" && params[:latitude].strip != ""
      room_address = Room.near([params[:latitude], params[:longitude]], 15, order: 'distance')
    elsif params[:location].present? && params[:location].strip != ""
      room_address = Room.near(params[:location], 15, order: 'distance')
    else
      return
    end

  end

正如您所看到的,我只是逐个输入它来检查params的存在。还有更好的办法吗?

1 个答案:

答案 0 :(得分:3)

可能是这样的:

search_param = params[:location] || [params[:latitude], params[:longitude]]
room_address = Room.near(search_param, 15, order: 'distance')

您还可以通过使用前端验证而不是在控制器中使用.strip != ''来确保参数不以空字符串形式出现。

相关问题