RoR: Синатра выдает ошибку "неинициализированная константа" - PullRequest
1 голос
/ 18 октября 2010

Я новичок в Ruby on Rails (ранее и в настоящее время эксперт по PHP), так что простите мое невежество, но я пытаюсь заставить Sinatra работать в качестве промежуточного программного обеспечения для перенаправления некоторых старых URL-адресов, так как я попробовал переписать гем стойку и не смогзаставить это работать либо.

Я использую примеры кода из ASCIIcast , поэтому в моем route.rb у меня есть следующее:

root :to => HomeApp

(^ I'm I'mперенаправление рута только для тестирования)

В моей папке lib у меня home_app.rb

class HomeApp < Sinatra::Base  
  get "/" do  
    "Hello from Sinatra"  
  end  
end 

Когда я запускаю сервер (или если он уже работает), он выдает ошибку:

routes.rb:10: uninitialized constant HomeApp

Кажется, что он просто не знает о файле lib / home_app.rb.

Я включил Sinatra в свой Gemfile и запустил установку комплекта и подтвердил, что он включен.

Я просто хочу перенаправить старые URL со своего старого сайта в мое новое приложение ruby, но не могу заставить работать все это промежуточное программное обеспечение / стойки.Вся документация предполагает, что вы не новичок или для RoR pre-3.0.

1 Ответ

2 голосов
/ 18 октября 2010

Вам не нужно использовать Sinatra, если вы хотите перенаправить некоторые URL-адреса.Вы можете использовать новый метод redirect.См. Статью Rails Dispatch .

match "/stories/:year/:month/:day/:name" => redirect("/%{name}")

constraints :user_agent => /iPhone/, :subdomain => /^(?!i\.)/ do
  match "*path" => redirect {|params, req| "http://i.myapp.com/#{req.fullpath}" }
end

. В вашем конкретном случае проблема в том, что класс HomeApp не загружен.Добавьте папку / lib в путь загрузки, изменив application.rb

config.autoload_paths += %W( #{config.root}/lib )

или require файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...