Rails 3.0.9 Ошибка маршрутизации - как ее исправить - чтобы достичь цели использования / registration / Diagnosses в качестве URL? - PullRequest
1 голос
/ 20 декабря 2011

Фон

Я посещал отличный курс по 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'

Ищу ответы на вопросы:

  1. Как я могу исправить эту ошибку, чтобы достичь цели использования / Регистрация / диагнозы?
  2. Это вообще хорошая идея, чтобы иметь несколько действий (типы регистрации) под / регистрации (я буду называть это дорожка)? Если да, то достигается ли это с помощью пространств имен?
  3. Как выполнить отладку содержимого в строке - неопределенный метод Diagnoses_path для # <#: 0x0000010289ebf0>
...