У меня был случай, когда я случайно начал разворачивать каталог файлов в корне. Он добавил файл .htaccess из моей папки с файлами, который блокирует все php
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
. Нижняя строка проверяет файл .htaccess на root.
Я бы начал с чего-то вроде этого:
def index
if params[:page].present?
@proposals = current_user.retailer.proposals.page(params[:page])
@proposals = @proposals.customer(params[:customer_id]) if params[:customer_id].present?
@proposals = @proposals.search(params.slice(:filter)) if params[:filter].present?
render json: @proposals, root: 'proposals', meta: pagination_dict(@proposals)
else
render status: :bad_request, json: { message: "Please supply page parameter" }
end
end
Кроме того, вы можете обработать ошибку в before_action
:
before_action :check_required_parameters, only: :index
def index
@proposals = current_user.retailer.proposals.page(params[:page])
@proposals = @proposals.customer(params[:customer_id]) if params[:customer_id].present?
@proposals = @proposals.search(params.slice(:filter)) if params[:filter].present?
render json: @proposals, root: 'proposals', meta: pagination_dict(@proposals)
end
private
def check_required_parameters
return if params[:page].present?
render status: :bad_request, json: { message: "Please supply page parameter" }
end
Области для обработки пустых значений:
# in the model
scope :filter, -> (term) { where("lower(first_name) || ' ' || lower(last_name) || ' ' || lower(email) LIKE ? OR qd_number::text LIKE ?", "%#{term.downcase}%", "%#{term}%") if term.present? }
scope :customer, -> (customer_id) { where(customer_id: customer_id) if customer_id.present? }
# in the controller
def index
if params[:page].present?
@proposals = current_user.retailer.proposals
.customer(params[:customer_id])
.search(params.slice(:filter))
.page(params[:page])
render json: @proposals, root: 'proposals', meta: pagination_dict(@proposals)
else
render status: :bad_request, json: { message: "Please supply page parameter" }
end
end