Error - uninitialized constant Project::Ticket
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class TicketsController < ApplicationController before_action :set_project before_action :set_ticket, only: [:show, :edit, :update, :destroy] def show end def set_ticket @ticket = @project.tickets.find(params[:id]) end def set_project @project = Project.for(current_user).find(params[:project_id]) rescue ActiveRecord::RecordNotFound flash[:alert] ="The project you were looking" +"for could not be found." redirect_to root_path end end |
project的模板 - show.html.erb
1 2 3 4 5 6 7 8 9 | <% @project.tickets.each do |ticket| %> <li> #<%= ticket.id %> - <%= link_to ticket.title, [@project, ticket] %> </li> <% end %> |
我收到错误:
这是在我的路线文件中
1 2 3 | resources :projects do resources :tickets end |
回溯
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 'Started GET"/projects/6" for 127.0.0.1 at 2014-03-12 21:47:37 +0530
Processing by ProjectsController#show as HTML
Parameters: {"id"=>"6"}
←[1m←[35mUser Load (0.0ms)←[0m SELECT"users".* FROM"users" WHERE"users"."i
d" = ? LIMIT 1 [["id", 4]]
←[1m←[36mProject Load (0.0ms)←[0m ←[1mSELECT"projects".* FROM"projects" WHE
RE"projects"."id" = ? LIMIT 1←[0m [["id","6"]]
←[1m←[35mPermission Load (0.0ms)←[0m SELECT"permissions".* FROM"permissions
" WHERE"permissions"."user_id" = ? [["user_id", 4]]
Rendered projects/show.html.erb within layouts/application (19.0ms)
Completed 500 Internal Server Error in 27ms
ActionView::Template::Error (uninitialized constant Project::Ticket):
11: <% end %>
12:
13: <ul id='tickets'>
14: <% @project.tickets.each do |ticket| %>
15:
<li>
16: #<%= ticket.id %> - <%= link_to ticket.title, [@project, ticket] %>
17:
</li>
app/views/projects/show.html.erb:14:in `_app_views_projects_show_html_erb__106
1934704_22827060'
Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_dispa
tch/middleware/templates/rescues/_trace.erb (2.0ms)
Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_dispa
tch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
Rendered C:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-4.0.1/lib/action_dispa
tch/middleware/templates/rescues/template_error.erb within rescues/layout (35.0m
s)'full trace-
1 activerecord (4.0.1) lib/active_record/inheritance.rb:125:in `compute_type' activerecord (4.0.1)lib/active_record/reflection.rb:178:in
klass' activerecord (4.0.1) klass'
lib/active_record/associations/association.rb:123:in
activerecord (4.0.1)
lib/active_record/associations/collection_association.rb:37:in
reader' activerecord (4.0.1) tickets'
lib/active_record/associations/builder/association.rb:70:in
app/views/projects/show.html.erb:14:in
_app_views_projects_show_html_erb__1061934704_22827060' actionpack block in render'
(4.0.1) lib/action_view/template.rb:143:in
activesupport (4.0.1) lib/active_support/notifications.rb:161:in
instrument' actionpack (4.0.1) lib/action_view/template.rb:141:in render' actionpack (4.0.1)
lib/action_view/renderer/template_renderer.rb:49:inblock (2 levels) block in
in render_template' actionpack (4.0.1)
lib/action_view/renderer/abstract_renderer.rb:38:in
instrument' activesupport (4.0.1)
lib/active_support/notifications.rb:159:inblock in instrument' instrument'
activesupport (4.0.1)
lib/active_support/notifications/instrumenter.rb:20:in
activesupport (4.0.1) lib/active_support/notifications.rb:159:in
instrument' actionpack (4.0.1) instrument'
lib/action_view/renderer/abstract_renderer.rb:38:in
actionpack (4.0.1) lib/action_view/renderer/template_renderer.rb:48:in
block in render_template' actionpack (4.0.1) render_with_layout' actionpack (4.0.1)
lib/action_view/renderer/template_renderer.rb:56:in
lib/action_view/renderer/template_renderer.rb:47:inrender_template' render' actionpack (4.0.1) lib/action_view/renderer/renderer.rb:42:in
actionpack (4.0.1) lib/action_view/renderer/template_renderer.rb:17:in
render_template' actionpack (4.0.1) render' actionpack (4.0.1)
lib/action_view/renderer/renderer.rb:23:in
lib/abstract_controller/rendering.rb:127:in_render_template' _render_template' actionpack (4.0.1)
actionpack (4.0.1) lib/action_controller/metal/streaming.rb:219:in
lib/abstract_controller/rendering.rb:120:inrender_to_body' render_to_body' actionpack (4.0.1)
actionpack (4.0.1) lib/action_controller/metal/rendering.rb:33:in
lib/action_controller/metal/renderers.rb:26:inrender_to_body' render'
actionpack (4.0.1) lib/abstract_controller/rendering.rb:97:in
actionpack (4.0.1) lib/action_controller/metal/rendering.rb:16:in
render' actionpack (4.0.1) block (2 levels)
lib/action_controller/metal/instrumentation.rb:41:in
in render' activesupport (4.0.1)
lib/active_support/core_ext/benchmark.rb:12:inblock in ms' realtime' activesupport
C:/Ruby193/lib/ruby/1.9.1/benchmark.rb:295:in
(4.0.1) lib/active_support/core_ext/benchmark.rb:12:inms' actionpack block in
(4.0.1) lib/action_controller/metal/instrumentation.rb:41:in
render' actionpack (4.0.1)
lib/action_controller/metal/instrumentation.rb:84:in
cleanup_view_runtime' activerecord (4.0.1) cleanup_view_runtime' actionpack (4.0.1)
lib/active_record/railties/controller_runtime.rb:25:in
lib/action_controller/metal/instrumentation.rb:40:inrender' default_render'
actionpack (4.0.1)
lib/action_controller/metal/implicit_render.rb:10:in
actionpack (4.0.1) lib/action_controller/metal/implicit_render.rb:5:in
send_action' actionpack (4.0.1) process_action' actionpack
lib/abstract_controller/base.rb:189:in
(4.0.1) lib/action_controller/metal/rendering.rb:10:in
process_action' actionpack (4.0.1) block in process_action'
lib/abstract_controller/callbacks.rb:18:in
activesupport (4.0.1) lib/active_support/callbacks.rb:433:in
_run__975686654__process_action__callbacks' activesupport (4.0.1) run_callbacks' actionpack
lib/active_support/callbacks.rb:80:in
(4.0.1) lib/abstract_controller/callbacks.rb:17:inprocess_action' process_action' actionpack (4.0.1)
actionpack (4.0.1) lib/action_controller/metal/rescue.rb:29:in
lib/action_controller/metal/instrumentation.rb:31:inblock in block in instrument'
process_action' activesupport (4.0.1)
lib/active_support/notifications.rb:159:in
activesupport (4.0.1)
lib/active_support/notifications/instrumenter.rb:20:ininstrument' instrument' actionpack (4.0.1)
activesupport (4.0.1) lib/active_support/notifications.rb:159:in
lib/action_controller/metal/instrumentation.rb:30:inprocess_action' process_action'
actionpack (4.0.1)
lib/action_controller/metal/params_wrapper.rb:245:in
activerecord (4.0.1)
lib/active_record/railties/controller_runtime.rb:18:in
process_action' actionpack (4.0.1) process' actionpack (4.0.1)
lib/abstract_controller/base.rb:136:in
lib/abstract_controller/rendering.rb:44:inprocess' actionpack dispatch' actionpack
(4.0.1) lib/action_controller/metal.rb:195:in
(4.0.1) lib/action_controller/metal/rack_delegation.rb:13:in
dispatch' actionpack (4.0.1) lib/action_controller/metal.rb:231:in block in action' actionpack (4.0.1)
lib/action_dispatch/routing/route_set.rb:80:incall' actionpack dispatch'
(4.0.1) lib/action_dispatch/routing/route_set.rb:80:in
actionpack (4.0.1) lib/action_dispatch/routing/route_set.rb:48:in
call' actionpack (4.0.1) lib/action_dispatch/journey/router.rb:71:in block in call' actionpack (4.0.1)
lib/action_dispatch/journey/router.rb:59:ineach' actionpack (4.0.1) call' actionpack (4.0.1)
lib/action_dispatch/journey/router.rb:59:in
lib/action_dispatch/routing/route_set.rb:680:incall' rack (1.5.2) call' rack (1.5.2)
lib/rack/etag.rb:23:in
lib/rack/conditionalget.rb:25:incall' rack (1.5.2) call' actionpack (4.0.1)
lib/rack/head.rb:11:in
lib/action_dispatch/middleware/params_parser.rb:27:incall' call' rack (1.5.2) lib/rack/session/abstract/id.rb:225:in
actionpack (4.0.1) lib/action_dispatch/middleware/flash.rb:241:in
context' call' actionpack
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in
(4.0.1) lib/action_dispatch/middleware/cookies.rb:486:incall' call'
activerecord (4.0.1) lib/active_record/query_cache.rb:36:in
activerecord (4.0.1)
lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in
call' activerecord (4.0.1) lib/active_record/migration.rb:369:in call' actionpack (4.0.1)
lib/action_dispatch/middleware/callbacks.rb:29:inblock in call' _run__388525736__call__callbacks' activesupport (4.0.1)
activesupport (4.0.1) lib/active_support/callbacks.rb:373:in
lib/active_support/callbacks.rb:80:inrun_callbacks' actionpack call'
(4.0.1) lib/action_dispatch/middleware/callbacks.rb:27:in
actionpack (4.0.1) lib/action_dispatch/middleware/reloader.rb:64:in
call' actionpack (4.0.1) call' actionpack
lib/action_dispatch/middleware/remote_ip.rb:76:in
(4.0.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in
call' actionpack (4.0.1) call'
lib/action_dispatch/middleware/show_exceptions.rb:30:in
railties (4.0.1) lib/rails/rack/logger.rb:38:incall_app' railties block in call' activesupport
(4.0.1) lib/rails/rack/logger.rb:20:in
(4.0.1) lib/active_support/tagged_logging.rb:67:inblock in tagged' tagged' activesupport (4.0.1)
activesupport (4.0.1) lib/active_support/tagged_logging.rb:25:in
lib/active_support/tagged_logging.rb:67:intagged' railties (4.0.1) call' actionpack (4.0.1)
lib/rails/rack/logger.rb:20:in
lib/action_dispatch/middleware/request_id.rb:21:incall' rack (1.5.2) call' rack (1.5.2)
lib/rack/methodoverride.rb:21:in
lib/rack/runtime.rb:17:incall' activesupport (4.0.1) call' rack
lib/active_support/cache/strategy/local_cache.rb:83:in
(1.5.2) lib/rack/lock.rb:17:incall' actionpack (4.0.1) call' rack (1.5.2)
lib/action_dispatch/middleware/static.rb:64:in
lib/rack/sendfile.rb:112:incall' railties (4.0.1) call' railties (4.0.1)
lib/rails/engine.rb:511:in
lib/rails/application.rb:97:incall' rack (1.5.2) call' rack (1.5.2)
lib/rack/lock.rb:17:in
lib/rack/content_length.rb:14:incall' rack (1.5.2) service'
lib/rack/handler/webrick.rb:60:in
C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:138:inservice' run'
C:/Ruby193/lib/ruby/1.9.1/webrick/httpserver.rb:94:in
C:/Ruby193/lib/ruby/1.9.1/webrick/server.rb:191:in `block in
start_thread'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Project < ActiveRecord::Base has_many :tickets, dependent: :destroy has_many :permissions, as: :thing scope :viewable_by, ->(user) do joins(:permissions).where(permissions: { action:"view", user_id: user.id }) end scope :for, ->(user) do user.admin? ? Project.all : Project.viewable_by(user) end validates :name, presence: true end |
您是否定义了票证模型? 如果模型票证不存在,这是您将获得的错误。 也许你已经将它命名为不同的东西。 请记住,类名是从关联名称推断出来的。
有一些模型,Rails无法在您的情况下正确复数/单一化。 因此,它无法从关联中获取类名。
指定关联以及类名。
1 | has_many :tickets, class_name: Ticket, dependent: :destroy |
在协会的另一边
如另一个答案所示,您必须拥有
没关系。 之前的答案不正确。
根据指南你已经设置的应该工作。
您是否检查过以确保