etspring
@etspring
Начитанное быдло

Где ошибка в роутинге Rails?

Доброго времени суток.
Имеется ruby 2.1.5 и рельсы 4.1.8.

Приложение отдает в JSON данные, внесенные до этого вручную в админке.
api.test.com/subscribtions -JSON отдается /api/subscribtions_controller.rb
test.com/subscribtions - список отдается /subscribtions_controller.rb

При попытке зайти на / ( welcome_controller )
Хватаю ошибку:
Started GET "/" for 10.0.0.21 at 2014-12-18 10:40:13 +0300
Processing by WelcomeController#index as HTML
Rendered welcome/index.html.erb within layouts/application (229.6ms)
Completed 500 Internal Server Error in 362ms

ActionView::Template::Error (Response from the API must behave like a Hash or an Array (last JSON response was "HTTP Basic: Access denied.\n")):
2:
3: <%= t('subscribtions') %>
4:
5: <%= render @subscribtions -%>
6:
7:
8:
config/initializers/her.rb:13:in `call'
app/views/welcome/index.html.erb:5:in `_app_views_welcome_index_html_erb___4542053705226696085_70232745016520'


Отрабатывает контроллер из /api, хотя должен работать обычный.

Куда копать?
Заранее спасибо за ответы.

Листинг routes.rb и вьюхи ниже.

Вьюха welcome#index
.jumbotron
  %h1 Главная
  %hr
  %p Количество Продуктов (#{Product.count})
  %p Количество Проектов (#{Project.count})
  %hr
  %p
    = link_to 'Продукты', products_path, class: 'btn btn-lg btn-primary'
    = link_to 'Проекты', projects_path, class: 'btn btn-lg btn-primary'
    = link_to 'Категории', categories_path, class: 'btn btn-lg btn-primary'
    = link_to 'Подписки', subscribtions_path, class: 'btn btn-lg btn-primary'


routes.rb
Plan::Application.routes.draw do
  root 'welcome#index'
  scope module: :api do
    constraints subdomain: /(api|test)(.*)/ do
      
      resources :subscribtions do
        member do
        resources :categories do
          member do
            resources :products
          end
        end
      end
      end
      resources :categories, :products
    end
  end

  resources :signed_urls, only: :index 
  resources :projects, :categories, :products
  resources :subscribtions do
    member do
      get :send_to_trash
    end
  end
  match "/delayed_job" => DelayedJobWeb, :anchor => false, via: 'get'
end
  • Вопрос задан
  • 2359 просмотров
Пригласить эксперта
Ответы на вопрос 1
dmitry-polushkin
@dmitry-polushkin
Инженер программного обеспечения
Используйте `namespace` DSL команду. Больше здесь: guides.rubyonrails.org/routing.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы