Я не могу понять, почему это не сработает.Метод класса импорта Rails из lib
У меня есть класс в Lib с этим кодом:
class SortMethods
def initialize(direction, sort)
@mydirection = direction
@mysort = sort
end
def sort_column(table, field)
table.column_names.include?(@mysort) ? @mysort : field
end
def sort_direction
%w[asc desc].include?(@mydirection) ? @mydirection : "asc"
end
end
В моей trucks_controller у меня есть этот код:
class TrucksController < ApplicationController
# GET /trucks
# GET /trucks.json
require 'sort_methods'
helper_method :sort_column, :sort_direction
def index
search = params[:search]
msm = SortMethods.new(params[:direction], params[:sort])
@trucks = Truck.search(search).order(msm.sort_column(Truck, "truck_no") + " " + msm.sort_direction)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @trucks }
end
end
end
То, что я не понимаю, это то, что я делаю неправильно, я «Пробовал все, что было предложено в этом посте, у другого человека был тот же вопрос, но он не работает. Что я делаю не так?
сообщение: Rails - how to call methods from lib directory?
Я хотел бы добавить, что я также пытался добавить .self и она по-прежнему не работает.
, пожалуйста, отобразите код для sort_column. Вы пытаетесь получить доступ к хэшу params внутри него? – Doon
По-видимому, вы вызываете 'params' в свой класс' SortMethods'. И вы не передаете его методам 'new' или' sort_column'. – MurifoX
@MurifoX Я не совсем понимаю, что вы сказали, как бы исправить это, не могли бы вы случайно отправить ответ? Я новичок в рельсах, пытаясь узнать, как все это сделано правильно. – Bojan