导轨3无路线匹配错误
问题描述:
我的应用程序使用票据和call_logs。我把它们嵌套在一起,这样门票可以有很多call_logs。 我得到错误与[GET]“/ call_logs” 我不知道我在这里失踪。
我有嵌套在我的路线的routes.rb导轨3无路线匹配错误
resources :tickets do
resources :call_logs
end
耙路线:
ticket_call_logs GET /tickets/:ticket_id/call_logs(.:format) call_logs#index
POST /tickets/:ticket_id/call_logs(.:format) call_logs#create
new_ticket_call_log GET /tickets/:ticket_id/call_logs/new(.:format) call_logs#new
edit_ticket_call_log GET /tickets/:ticket_id/call_logs/:id/edit(.:format) call_logs#edit
ticket_call_log GET /tickets/:ticket_id/call_logs/:id(.:format) call_logs#show
PUT /tickets/:ticket_id/call_logs/:id(.:format) call_logs#update
DELETE /tickets/:ticket_id/call_logs/:id(.:format) call_logs#destroy
tickets GET /tickets(.:format) tickets#index
POST /tickets(.:format) tickets#create
new_ticket GET /tickets/new(.:format) tickets#new
edit_ticket GET /tickets/:id/edit(.:format) tickets#edit
ticket GET /tickets/:id(.:format) tickets#show
PUT /tickets/:id(.:format) tickets#update
DELETE /tickets/:id(.:format) tickets#destroy
call_logs控制器:
class CallLogsController < ApplicationController
before_filter :get_ticket
# GET /call_logs
# GET /call_logs.json
def index
@call_logs = @ticket.call_logs.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @call_logs }
end
# GET /call_logs/1
# GET /call_logs/1.json
def show
@call_log = @ticket.call_logs.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @call_log }
end
end
# GET /call_logs/new
# GET /call_logs/new.json
def new
@call_log = @ticket.call_logs.build
respond_to do |format|
format.html # new.html.erb
format.json { render json: @call_log }
end
end
# GET /call_logs/1/edit
def edit
@call_log = @ticket.call_logs.find(params[:id])
end
# POST /call_logs
# POST /call_logs.json
def create
@call_log = CallLog.new(params[:call_log])
respond_to do |format|
if @call_log.save
format.html { redirect_to ticket_call_logs_url(@ticket), notice: 'Call log was successfully created.' }
format.json { render json: @call_log, status: :created, location: @call_log }
else
format.html { render action: "new" }
format.json { render json: @call_log.errors, status: :unprocessable_entity }
end
end
end
# PUT /call_logs/1
# PUT /call_logs/1.json
def update
@call_log = @ticket.call_logs.find(params[:id])
respond_to do |format|
if @call_log.update_attributes(params[:call_log])
format.html { redirect_to ticket_call_logs_url(@ticket), notice: 'Call log was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @call_log.errors, status: :unprocessable_entity }
end
end
end
# DELETE /call_logs/1
# DELETE /call_logs/1.json
def destroy
@call_log = @ticket.call_log.find(params[:id])
@call_log.destroy
respond_to do |format|
format.html { redirect_to ticket_call_logs_path(@call_log)}
format.json { head :no_content }
end
end
end
end
private
def get_ticket
@ticket = Ticket.find(params[:ticket_id])
end
我相信我有一个错误在我的网址路径w母鸡直接进入call_log页面,但我似乎无法找到它。任何意见或提示将不胜感激,因为我是一个小白菜。 谢谢。
答
正如您从rake routes
的输出中看到的,您没有匹配/ call_logs的路由。由于这是一个嵌套的资源路由,因此您必须预先安排票证和票证编号:/tickets/<id>/call_logs
。
答
看起来你已经在routes.rb中做了更改,但没有在Models中保持关系。 as rake routes says ticket_call_logs GET /tickets/:ticket_id/call_logs((::format)
应该可以通过/ ticket/id/call_logs访问,现在这里的“id”是ticket id。这将列出该特定ticket_id的所有通话记录。
指向该网址时,我仍然收到路由错误。 – Loooz 2013-03-27 16:31:59
您是否用有效的机票ID替换? –
davidrac
2013-03-27 16:55:12
是的,现在我得到错误:#的未定义方法'call_logs'。 –
Loooz
2013-03-27 17:10:33