Dziwna ścieżka, akcja :show, gdy próbuję odwołać się do :create

Wczoraj walczyłem z tym przez jakiś czas, ale nie mam już innych pomysłów.

Jest sobie taki routing:

namespace :editor do resources :farms, except: [:edit, :destroy], path: '/' do collection do get 'search' end # jakieś tam dalej nested resources end end
FarmsController (app/controllers/editor/farms_controller.rb)

[code]module Editor
class FarmsController < EditorController
skip_before_filter :search_farm, :only => [:index, :new, :create]
# Jest to filtr, który w gruncie rzeczy robi @farm = Farm.find(params[:id])

def new
  @farm = Farm.new
end

def create
end

end
end[/code]
W EditorController, który jest rodzicem FarmsController nie ma nic szczególnego - filtr :search_farm i layout ‘editorlay’. I właściwie tyle.

app/views/editor/farms/new.html.erb

<%= form_for [:editor, @farm] do |f| %> Imię: <%= f.text_field :imie %><br/> Nazwisko: <%= f.text_field :nazwisko %><br/> <%= f.submit "Utwórz" %> <% end %>
Gdy próbuję przejść do tego formularza, railsy wyrzucają mi błąd:

[code]No route matches {:action=>“show”, :controller=>“editor/farms”, :id=>#<Farm id: nil, (i tutaj pozostałe atrybuty, wszystkie mają nil, tak jak to zawsze ma Farm.new)>}

Try running rake routes for more information on available routes.[/code]
Co mi kompletnie nic nie mówi, pojęcia nie mam czemu jest akcja ‘show’ i czemu w id jest model, zamiast model.id.

rake routes wygląda normalnie, ale wkleję jeszcze: (wycięte nested resources)

search_editor_farms GET /editor/search(.:format) editor/farms#search editor_farms GET /editor(.:format) editor/farms#index POST /editor(.:format) editor/farms#create new_editor_farm GET /editor/new(.:format) editor/farms#new editor_farm GET /editor/:id(.:format) editor/farms#show PUT /editor/:id(.:format) editor/farms#update
Mógłby mnie naprowadzić ktoś na jakiś trop, gdzie powinienem szukać przyczyn tego błędu?

Podejrzewam, że błędem nie rzuca linijka z form_for tylko może jakaś inna? Coś w stylu link_to @farm umieszczone pod formatką? Sprawdź w logu czy numer linii rzucającej wyjątek czegoś nie podpowie.

Ech, baran ze mnie, w ogóle na to nie wpadłem : )

Było tak jak mówisz, co prawda formularz był praktycznie puściutki, ale całkiem zapomniałem, że renderuję layout przeznaczony dla konkretnych obiektów typu farm i po lewej są linki do nested resources itp., które generowały błąd. Mea culpa, z drugiej strony nie wiem czemu od razu railsy nie wyświetliły błędu, nie wiem od czego to zależy, bo jak są normalne errory to zazwyczaj są przyciski Application Trace i jeszcze tam jakieś, które pokazują linijki, a tu było tylko tak mało informacji : )

Może to miało coś wspólnego z tym, że railsy przechwytują (lub przechwytywały do niedawna) każdy wyjątek rzucany gdziekolwiek z widoku (np. z któregoś partiala) i zamieniały go na MissingTemplate (na ślepo)? Tak zgaduję.

Wredne to było, bo teraz mam jeszcze niektóre partiale otoczone przez <% begin %> ...<% rescue logger.error...; raise end %> :frowning: