내가 경로로 이동 : 그러나 때레일 3 - 복수화는 "새로운"행동에 경로/방법 오류의 원인이 아니라 "편집"에 form_for는
myapp/app/views/genre/_form.html.erb where line #1 raised:
undefined method `genres_path' for #<#<Class:0x007fdcb39edcb0>:0x007fdcb39e8080>
: /genre/new
를 내 응용 프로그램에서이 오류를 얻을 수/genre/: id/_form.html.erb 파일 렌더러를 오류없이 편집하면 레코드가 문제없이 업데이트됩니다.
내 new.html.erb
및 edit.html.erb
파일 <%= render 'form' %>
전화 내 _form.html.erb
파일이 있습니다 genre_controller.rb 내 '새'와 '편집'행동에
<%= form_for(@genre) do |f| %>
<%= f.label :title %> <br /> <%= f.text_field :title %>
<%= f.label :desc %> <br /> <%= f.text_field :desc %>
<%= f.submit %>
<% end %>
은 다음과 같습니다
def new
@genre = Genre.new
current_user.authorize! :create, @genre # cancan authorization
respond_to do |format|
format.html # new.html.erb
format.json { render json: @genre }
end
end
def edit
@genre = Genre.find(params[:id])
current_user.authorize! :update, @genre # cancan authorization
end
내가 ' 내 코드베이스에서 "genres"문자열에 대한 검색을 실행하면 로그에 유일한 위치가 표시되므로 내 코드에서 오타가 아닌 것입니다.
레일스 라우팅 시스템은 "장르"를 "장르"로 정확하게 다중화하지만 form_for (또는 종속성)는 복수형 "장르"를 생성하지만 매개 변수가 비어 있거나 "새로운" . 오류 감안할 때
는나는 내 routes.rb 파일에 다음의 다양한 조합을 시도하지만,이 문제가 해결되지 않았다 'genres_path'주위 : 내가 일을 할 수있는 방법에
match "/genres" => "genre#index", :as => :genre
match "/genres/:id(.:format)" => "genre#show", :as => :genre
match "/genre" => "genre#index", :as => :genres
match "/genre/:id(.:format)" => "genre#show", :as => :genres
어떤 생각 이 주변?
편집 : new.html.erb에
genre_index GET /genre(.:format) {:action=>"index", :controller=>"genre"}
POST /genre(.:format) {:action=>"create", :controller=>"genre"}
new_genre GET /genre/new(.:format) {:action=>"new", :controller=>"genre"}
edit_genre GET /genre/:id/edit(.:format) {:action=>"edit", :controller=>"genre"}
genre GET /genre/:id(.:format) {:action=>"show", :controller=>"genre"}
PUT /genre/:id(.:format) {:action=>"update", :controller=>"genre"}
DELETE /genre/:id(.:format) {:action=>"destroy", :controller=>"genre"}
감사를 시도입니다. 나는 그것을 시도하고 다른 오류로 연결됩니다 : 경로 일치 {: action => "show", : controller => "genre"}. 그러나 이것은 가짜 오류입니다. 나는 그런 경로를 가지고 있습니다. "rake routes"를 실행하면 genre GET/genre/: id (. : format) {: action => "show", : controller => "genre"} 정확한 경로에 오류 메시지가 표시됩니다. . 어떤 생각이 원인이 무엇입니까? –
모든 장르 경로에 대한 레이크 루트의 출력을 추가 할 수 있습니까? 또한 업데이트 된 답변 참조 - 메서드를 풋 또는 포스트로 지정하십시오. – house9
맨 아래의 질문에서 경로를 확인하십시오. 두 가지 시도 : put 및 : post : methods - 이전과 같은 오류 ("no route matches ...") 또한 문서에서 본 몇 가지 사항을 시도했지만 성공하지는 못했습니다. 이것은 정말로 나를 곤란하게 만든다.당신의 도움을 주셔서 감사합니다. –