неопределенный метод get для контроллера

Я пытаюсь использовать немного кода из приложения Ruby в Rails.

Рассматриваемое приложение не в Rails и имеет два представления. Я скопировал часть кода и вставил его в контроллер в Rails:

get '/' do
  erb :index, :locals => {:item_id => item_id, :access_token => access_token}
end

И я получаю ошибку:

ActionController::RoutingError (undefined method `get' for XXXcontroller)

Я не уверен, как я должен интерпретировать этот бит кода в контроллере в Rails.

Всего 2 ответа


Вам нужно начать с реального учебника / книги и изучить Rails. Вы не можете собрать приложение rails из случайных фрагментов, которые вы не понимаете.

Этот код взят из Sinatra, который разработан с учетом простых приложений и где ваши маршруты и контроллеры объединены в один файл. Код Rails и Sinatra не является взаимозаменяемым *.

Если вы хотите определить маршрут в Rails для / (корневой путь). Вы определяете это так:

# config/routes.rb
Rails.application.routes.draw do
  root to: 'pages#home' 
end

А затем объявите соответствующий контроллер:

# app/controllers/pages_controller.rb
class PagesController < ApplicationController
  def home
  end
end

И вид:

<h1>Pages#home</h1>
<p>Find me in app/views/pages/home.html.erb</p>

Видеть:

Начало работы с Rails


Маршруты в приложении Rails находятся в routes.rb в каталоге config . Ваш маршрут может выглядеть примерно так:

get ‘/index’, to: ‘controller#index’

Это говорит о выполнении действия индекса контроллера контроллера. Этот метод (индекс) связан с запросом get.


Есть идеи?

10000