Фон
Я посещал отличный курс по Rails в Манчестере, Великобритания, недавно проводимый в MadLabs (включите их), который ведут два знающих специалиста.
До этого я пробежался по нескольким известным книгам:
Райан Биггс и др. «Rails 3 в действии»
Прагматическая книга «Гибкая веб-разработка с Rails, 4-е издание»
Первоначально я начал с превосходных скринкастов и книги Майкла Хартла.
Все это отличные отправные точки, но затем мы отправляемся в реальный мир!
Большую часть двух дней я потратил, пытаясь найти, как это исправить, но до сих пор не повезло с многочисленными ошибками.
Будучи новичком в этом замечательном языке, я стремлюсь учиться и понимать, что это, вероятно, глупый вопрос для всех опытных разработчиков. НО, мы все должны с чего-то начать.
Я мог бы пойти по простому маршруту и просто использовать опцию ресурсов, но думаю, что это станет громоздким с 15 регистрационными действиями.
Любые предложения, полученные великолепно.
Надеюсь, что смогу ответить сам.
Заранее спасибо.
проблема
Я работаю над проектом личного обучения, портирующим приложение VB6 на Rails (3.0.9)
В существующем приложении есть ряд действий типа «Регистрация». например персонал, инвентарь, пользователь, лабораторные анализы, диагностика и т. д. (всего 15)
В настоящее время возникла проблема с маршрутизацией, из-за которой я удалил созданный скаффолдинг ресурс в попытке сделать более общий ресурс позже для всех других регистраций. Влечет ли это за собой вложение или использование пространств имен, я не уверен.
Аспирация
Однако я хотел использовать URL-адрес, например: / registration /
например / регистрация / диагностика (или es, все еще выясняя единственное / множественное число детали)
Мой файл маршрутов выглядит следующим образом:
# resources :diagnoses
match '/registration/diagnosis', :to => 'diagnoses#new', :as => :new_diagnosis
Диагностический контроллер выглядит следующим образом:
class DiagnosesController < ApplicationController
def index
end
def new
@diagnosis = Diagnosis.new
end
end
Диагностика частичного вида выглядит следующим образом:
<%= form_for(@diagnosis) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :code %>
<%= f.text_field :code %>
</p>
<p>
<%= f.label :description %>
<%= f.text_field :description %>
</p>
<%= f.submit %>
<% end %>
Сообщение об ошибке
NoMethodError in Diagnoses#new
Showing /Users/rails3dev/railsprojects/myhospapp1/app/views/diagnoses/_form.html.erb where line #1 raised:
undefined method `diagnoses_path' for #<#<Class:0x000001028a9f50>:0x0000010289ebf0>
Extracted source (around line #1):
1: <%= form_for(@diagnosis) do |f| %>
2: <%= f.error_messages %>
3: <p>
4: <%= f.label :code %>
Trace of template inclusion: app/views/diagnoses/new.html.erb
Rails.root: /Users/rails3dev/railsprojects/myhospapp1
Application Trace | Framework Trace | Full Trace
app/views/diagnoses/_form.html.erb:1:in `_app_views_diagnoses__form_html_erb__1092201988075669766_2168688260_2510900908163010427'
app/views/diagnoses/new.html.erb:2:in `_app_views_diagnoses_new_html_erb__2033770677348794944_2168763160_2124755090121635792'
Ищу ответы на вопросы:
- Как я могу исправить эту ошибку, чтобы достичь цели использования
/ Регистрация / диагнозы?
- Это вообще хорошая идея, чтобы иметь несколько действий
(типы регистрации) под / регистрации (я буду называть это
дорожка)? Если да, то достигается ли это с помощью пространств имен?
- Как выполнить отладку содержимого в строке - неопределенный метод Diagnoses_path для # <#: 0x0000010289ebf0>