Przeszedłem tonę formularza_do zagnieżdżonych pytań dotyczących zasobów i nie mogę uzyskać żadnego rozwiązania, które zadziała. Pomyślałem, że nadszedł czas, aby zadać spersonalizowane pytanie.Formularz dla zasobu zagnieżdżonego
Mam dwa modele, zadania i pytania, oferty pracy ma wiele pytań i pytań należą do pracy.
Użyłem rusztowania do utworzenia kontrolerów i modeli, a następnie zagnieździłem zasoby w routes.rb.
root :to => "pages#home"
resources :jobs do
resources :questions
end
get "pages/home"
get "pages/about"
get "pages/contact"
class Job < ActiveRecord::Base
has_many :questions
end
class Question < ActiveRecord::Base
belongs_to :job
end
Teraz usiłuję dostępu '/ Praca/1/pytania/nowy' i zachować coraz
NoMethodError w pytaniach trafić New
Zacząłem błędu Brak dopasowania route {: controller => „pytania”} gdy kod był
<%= form_for(@question) do |f| %>
wiem, że to źle, więc zacząłem próbować inne kombinacje i żaden z nich pracował.
Próbowałem
<%= form_for([@job.questions.build ]) do |f| %>
że
<%= form_for([@job, @job.questions.build ]) do |f| %>
tym
<%= form_for(@job, @question) do |f| %>
Wśród kilka innych kombinacjach i że nie działają.
Oto link do moich tras kasę: git clone https://gist.github.com/1032734
Każda pomoc jest mile widziana i daj mi znać, jeśli potrzebujesz więcej informacji, dzięki.
Pierwszy opcja zadziałała, dziękuję! - co robi przekazanie adresu URL, który to rozwiązuje? Również job_id dla pytania nie aktualizuje się w DB - jakiś pomysł, jak to naprawić? FYI: edycja zwróciła ten błąd: żadna trasa nie pasuje do {: kontrolera => "pytań"} – Igrabes
Gdy nie przełączysz opcji ': url', Railsy spróbują ją samodzielnie rozwiązać. Nie wie, że 'Pytanie' jest zawsze pod-zasobem' Job', ponieważ nie zawsze musi być. Jeśli chodzi o "job_id", który nie jest aktualizowany, jeśli używasz przypisania masy, prawdopodobnie go ignorujesz. Wywołaj 'question.job = new_job' osobno. Nie widzę jednak twojego kodu. – d11wtq
Hej @ d11wtq, nie jestem całkowicie pewien, co masz na myśli przez Call question.job = new_job - gdzie to się dzieje? Oto moje repo [link (https://github.com/igrabes/InterQ), jeśli to pomaga. – Igrabes