2013-04-13 2 views
0

У меня возникла проблема с созданными путями просмотра. Мой routes.rb выглядит следующим образомСгенерированные ссылки вид сбоку не соответствуют правильно маршрутным картам

Project::Application.routes.draw do 
    resources :project_templates do 
    resources :awards 
    end 
... 

project_template.rb как этот

class ProjectTemplate < ActiveRecord::Base 

    belongs_to :user 
    has_many :awards #... 

    attr_accessible :user_id #... 

    ... 

award.rb как

class Award < ActiveRecord::Base 
    belongs_to :project_template 
    attr_accessible :tier #.. 
    ... 

генерировал просмотреть ссылки, как это: awards_path Таким образом, приложение не работает, и мне необходимо заменить все на project_template_awards_path

Я не знаю, почему генератор сделал это без префикса project_template, но я прошу вас помочь мне найти способ обойти это. Может быть, есть какая-то команда генератора, которая добавит недостающие суффиксы в пути? Я должен сделать то же самое с другим классом requirement.rb, и для этого есть мнения, поэтому я надеюсь, что есть какая-то волшебная команда для решения моей проблемы.


rake routes | grep awards дает следующий вывод:

project_template_awards  GET  /project_templates/:project_template_id/awards(.:format)   awards#index 
          POST /project_templates/:project_template_id/awards(.:format)   awards#create 
new_project_template_award GET  /project_templates/:project_template_id/awards/new(.:format)  awards#new 
edit_project_template_award GET  /project_templates/:project_template_id/awards/:id/edit(.:format) awards#edit 
project_template_award  GET  /project_templates/:project_template_id/awards/:id(.:format)  awards#show 
          PUT  /project_templates/:project_template_id/awards/:id(.:format)  awards#update 
          DELETE /project_templates/:project_template_id/awards/:id(.:format)  awards#destroy 
+0

Какую команду вы запустите генератор с? Можете ли вы вставить его из своей истории оболочки? – BM5k

+0

'rails generate scaffold. Имя требования: string description: text count: integer like_count: integer comment_count: integer project_template: reference' это то, что я запустил – Davit

+0

simiar, к чему я побежал для' Awards' – Davit

ответ

0

Не могли бы вы попробовать ввести $ rake routes в директории проекта и размещаете там выход? Показывает ли ресурс awards_path ресурсы Награды?

PS. Контроллерам здесь нечего делать, поскольку вы можете создавать ресурсы маршрута без соответствующих контроллеров в приложении /.

+0

Я буду обновлять свой вопрос со значениями по '$ рейк-маршрутам | grep awards' – Davit

0

Правильные маршруты. Если вы хотите, чтобы это хелперы, вы можете добавить к вашей route.rb

Project::Application.routes.draw do 
    resources :project_templates 
    resources :awards 
end 

Или реализовать хелперы как

def awards_path(award) 
    project_template_awards(awards.project_template, awards) 
end 

Больше информации о ruby guides

Смежные вопросы