는 단순히Ruby 코드 ... 또는 Rails 경로에 오류가 있습니까?
오류 브라우저에서 ... 루비/레일에 비교적 새로운 해요 및 case/when
절 또는 아마도 내가 이해하고 있지 않다 경로의 구조를 망쳐있다 : No route matches {:action=>"show", :controller=>"masters"}
하지만 분명히보고 rake routes
에서 나는 참조 :
master GET /masters/:id(.:format) {:action=>"show", :controller=>"masters"}
breeder GET /breeders/:id(.:format) {:action=>"show", :controller=>"breeders"}
모두 (masters
& breeders
를) 컨트롤러 show
방법 ...
어디가 어때?
#app/controllers/dogs_controller.rb
class DogsController < ApplicationController
def create
@parent = parent_object
@dog = @parent.dogs.create(params[:dog])
puts parent_path
redirect_to parent_path(@parent)
end
def destroy
@parent = parent_object
@dog = @parent.dogs.find(params[:id])
@dog.destroy
redirect_to parent_path(@parent)
end
private
def parent_object
case
when params[:master_id] then Master.find(params[:master_id]) && parent_path = master_path
when params[:breeder_id] then Breeder.find(params[:breeder_id]) && parent_path = breeder_path
end
end
end
편집 : 추가 MastersController
#app/controllers/masters_controller.rb
class MastersController < ApplicationController
respond_to :html, :json
def index
respond_with(@masters = Master.all)
end
def show
respond_with(@master = Master.find(params[:id]))
end
def new
respond_with(@master = Master.new)
end
def edit
respond_with(@master = Master.find(params[:id]))
end
def create
@master = Master.new(params[:master])
flash[:notice] = 'Master was successfully created.' if @master.save
respond_with(@master)
end
def update
@master = Master.find(params[:id])
flash[:notice] = 'Master has been updated.' if @master.update_attributes(params[:master])
respond_with(@master)
end
def destroy
@master = Master.find(params[:id])
flash[:notice] = 'Successfully deleted master.' if @master.destroy
respond_with(@master)
end
end
MastersController를 (를) 보여줄 수 있습니까? –
확인. 그것은 꽤 보일러이지만 나는 그것을 추가했습니다. – Meltemi
오류가 발생하는 정확한 단계를 설명하십시오. –