Я новичок в ROR, и я пытаюсь добавить новый метод к контроллеру, но я не могу его решить. Ниже приводится новый метод в контроллере:ROR - Правила маршрутизации не работают
def bulkItemsUpload
respond_to do |format|
options = { col_sep: ',', converters: :numeric, headers: true }
array = []
CSV.foreach(params[:file].path, options) do |row|
array.push(row.to_hash)
end
logger.debug "Parsed items: #{array.inspect}"
format.html { redirect_to companies_path }
format.js { render json: JSON.pretty_generate(array) }
end
end
Ниже существующий маршрут для контроллера:
resources :projects, except: :show do
collection do
get :search
get :look_for_name
# post :bulkItemsUpload
end
member do
patch "/archive/:archive", constraints: {archive: /true|false/}, action: :archive, as: :archive
end
match "/timesheet", to: "timesheets#show", via: [:get, :post], as: :timesheet
match "/items", to: "items#show", via: [:get, :post], as: :items
match "/search_reports", to: "reports#index", via: [:post], as: :search_reports
resources :reports, except: :destroy
resource :email_permissions, only: [:new, :create]
resources :project_workers, only: [:destroy, :update] do
resources :worked_hours, only: [:update]
end
resources :project_items, only: [:destroy, :update] do
resources :used_items, only: [:update]
end
end
Я добавил запись bulkItemsUpload в файле маршрута, но до сих пор не может решить. Любая идея, что я делаю неправильно?
Предполагая, что это ваш контроллер проектов, где находится метод, и что у вас нет '#'. (и вы перезапустили свой сервер после того, как сделали изменение для перезагрузки маршрутов? – Doon
Что делает «рейк-маршруты»? Включает ли он маршрут? – eirikir
также маршруты CamelCasing являются нетрадиционными и могут вызывать проблемы (URL-адреса не чувствительны к регистру в конце), поэтому вы должны попробовать under_scoring их вместо – eirikir