【问题标题】:clean multiple params in rails controller清理 Rails 控制器中的多个参数
【发布时间】:2016-04-26 10:34:18
【问题描述】:

我有一个这样的控制器操作

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

如您所见,我只是通过一一输入来检查参数是否存在。有没有更好的办法??

【问题讨论】:

    标签: ruby ruby-on-rails-4


    【解决方案1】:

    可能是这样的:

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

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

    【讨论】:

    • 如果你不想在前端处理它,或者像之前那样删除params.delete_if{|k,v| v.strip.blank?}的空参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多