나는 티켓이있는 프로젝트를 가지고 있으며, 여기에는 의견이 있습니다. 모델 연관을위한 코드가 정확하다고 나는 믿는다. 나는 버튼을 클릭하기 전에레일 3 : 3 모델 및 라우팅 오류
class Comment < ActiveRecord::Base
belongs_to :ticket, :dependent => :destroy
belongs_to :project
end
class Ticket < ActiveRecord::Base
belongs_to :project
has_many :comments, :dependent => :destroy
end
class Project < ActiveRecord::Base
has_many :tickets
has_many :comments, :through => :tickets
end
, 경로는 다음과 같습니다
http://localhost:3000/projects/7/tickets/16
것은 나는 내가 그것을 읽고 어떻게해야합니까 어떻게
http://localhost:3000/tickets/16/comments
에, 경로 변경 제출 버튼을 클릭하면 :
http://localhost:3000/projects/7/tickets/16/
tickets/:id
보기에 표시 할 새 댓글? 이 컨트롤러를 사용
ActiveRecord::RecordNotFound in CommentsController#create
Couldn't find Project without an ID
:
내가 제출 및 티켓 개체에 대한 의견을 작성, 그것은 활성 기록 오류를 제공 레일에
def create
@project = Project.find(params[:project_id])
@ticket = @project.tickets.find(params[:ticket_id])
@comment = @ticket.comments.new(params[:comment])
if @comment.save
redirect_to project_ticket_path(@project, @ticket)
else
end
end
새로운하지만이어야한다 모델 연관 또는 라우팅과 함께 ...
내 라우팅 링크 ...
Kaledoscope:ticket_taker Evolution$ rake routes
project_tickets GET /projects/:project_id/tickets(.:format) {:action=>"index", :controller=>"tickets"}
POST /projects/:project_id/tickets(.:format) {:action=>"create", :controller=>"tickets"}
new_project_ticket GET /projects/:project_id/tickets/new(.:format) {:action=>"new", :controller=>"tickets"}
edit_project_ticket GET /projects/:project_id/tickets/:id/edit(.:format) {:action=>"edit", :controller=>"tickets"}
project_ticket GET /projects/:project_id/tickets/:id(.:format) {:action=>"show", :controller=>"tickets"}
PUT /projects/:project_id/tickets/:id(.:format) {:action=>"update", :controller=>"tickets"}
DELETE /projects/:project_id/tickets/:id(.:format) {:action=>"destroy", :controller=>"tickets"}
projects GET /projects(.:format) {:action=>"index", :controller=>"projects"}
POST /projects(.:format) {:action=>"create", :controller=>"projects"}
new_project GET /projects/new(.:format) {:action=>"new", :controller=>"projects"}
edit_project GET /projects/:id/edit(.:format) {:action=>"edit", :controller=>"projects"}
project GET /projects/:id(.:format) {:action=>"show", :controller=>"projects"}
PUT /projects/:id(.:format) {:action=>"update", :controller=>"projects"}
DELETE /projects/:id(.:format) {:action=>"destroy", :controller=>"projects"}
ticket_comments GET /tickets/:ticket_id/comments(.:format) {:action=>"index", :controller=>"comments"}
POST /tickets/:ticket_id/comments(.:format) {:action=>"create", :controller=>"comments"}
new_ticket_comment GET /tickets/:ticket_id/comments/new(.:format) {:action=>"new", :controller=>"comments"}
edit_ticket_comment GET /tickets/:ticket_id/comments/:id/edit(.:format) {:action=>"edit", :controller=>"comments"}
ticket_comment GET /tickets/:ticket_id/comments/:id(.:format) {:action=>"show", :controller=>"comments"}
PUT /tickets/:ticket_id/comments/:id(.:format) {:action=>"update", :controller=>"comments"}
DELETE /tickets/:ticket_id/comments/:id(.:format) {:action=>"destroy", :controller=>"comments"}
tickets GET /tickets(.:format) {:action=>"index", :controller=>"tickets"}
POST /tickets(.:format) {:action=>"create", :controller=>"tickets"}
new_ticket GET /tickets/new(.:format) {:action=>"new", :controller=>"tickets"}
edit_ticket GET /tickets/:id/edit(.:format) {:action=>"edit", :controller=>"tickets"}
ticket GET /tickets/:id(.:format) {:action=>"show", :controller=>"tickets"}
PUT /tickets/:id(.:format) {:action=>"update", :controller=>"tickets"}
DELETE /tickets/:id(.:format) {:action=>"destroy", :controller=>"tickets"}
root /(.:format) {:controller=>"projects", :action=>"index"}
프로젝트에서 '레이크 경로'를 실행하십시오. 너는 무엇을 얻 느냐? – cocoahero