生成的视图路径存在问题。我的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 :(得分:0)
您可以尝试在项目目录中键入$ rake routes
并在那里发布输出吗?它是否仍然显示奖项资源的awards_path?
PS。控制器在这里无关,因为你可以在app /.// p>中创建没有相应控制器的路由资源
答案 1 :(得分: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
的更多信息