Я играю с пользовательским видом и маршрутами. Я думаю, что у меня все хорошо, но, очевидно, нет. По сути, я попытался скопировать метод show и show.html.erb, но по какой-то причине это не сработало.
Мой контроллер
class fatherController < ApplicationController
def show
@father = Father.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @father }
end
end
def ofmine
@father = Father.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @father }
end
end
end
Мои маршруты.рб
Parent::Application.routes.draw do
resources :fathers do
resources :kids
end
match 'hospitals/:id/ofmine' => 'father#show2'
end
когда я иду на
127.0.0.1: / отец / 1
работает нормально, но когда я пытаюсь перейти на
127.0.0.1: / отец / 1 / ofmine
выдает следующую ошибку. Неважно, какая переменная / метод вызывается; это происходит в первом отображаемом. И show.html.erb, и show2.html.erb - это одни и те же файлы
Моя ошибка из командной строки веб-сервера
> Processing by fathersController#show2
> as HTML Parameters: {"id"=>"1"}
> Rendered fathers/show2.html.erb within
> layouts/application (31.6ms) Completed
> in 37ms
>
> ActionView::Template::Error (undefined
> method `name' for nil:NilClass):
> 4: <td>Name</td><td></td>
> 5: </tr>
> 6: <tr>
> 7: <td><%= @father.name %></td><td></td>
> 8: </tr>
> 9: <tr>
> 10: <td>City</td><td>State</td> app/views/fathers/show2.html.erb:7:in
> `_app_views_fatherss_show__html_erb___709193087__616989688_0'
Ошибка, отображаемая на реальной странице
NoMethodError in Fathers # show2
Показываются
/var/ruby/chs/app/views/fathers/show2.html.erb
где строка № 7 поднята:
неопределенный метод `name 'для
ноль: NilClass
Извлеченный источник (около строки № 7):
4: Имя 5:
6: 7: <% =
@ Father.name%> 8:
9: 10:
CityState
Если бы кто-нибудь мог сказать мне, что в мире я делаю неправильно, я был бы очень признателен.
Вот копия моих рейковых маршрутов
father_ofmine /fathers/:father_id/ofmine(.:format) {:action=>"show2", :controller=>"fathers"}
father_kids GET /fathers/:father_id/kids(.:format) {:action=>"index", :controller=>"kids"}
POST /fathers/:father_id/kids(.:format) {:action=>"create", :controller=>"kids"}
new_father_kid GET /fathers/:father_id/kids/new(.:format) {:action=>"new", :controller=>"kids"}
edit_father_kid GET /fathers/:father_id/kids/:id/edit(.:format) {:action=>"edit", :controller=>"kids"}
father_kid GET /fathers/:father_id/kids/:id(.:format) {:action=>"show", :controller=>"kids"}
PUT /fathers/:father_id/kids/:id(.:format) {:action=>"update", :controller=>"kids"}
DELETE /fathers/:father_id/kids/:id(.:format) {:action=>"destroy", :controller=>"kids"}
fathers GET /fathers(.:format) {:action=>"index", :controller=>"fathers"}
POST /fathers(.:format) {:action=>"create", :controller=>"fathers"}
new_father GET /fathers/new(.:format) {:action=>"new", :controller=>"fathers"}
edit_father GET /fathers/:id/edit(.:format) {:action=>"edit", :controller=>"fathers"}
father GET /fathers/:id(.:format) {:action=>"show", :controller=>"fathers"}
PUT /fathers/:id(.:format) {:action=>"update", :controller=>"fathers"}
DELETE /fathers/:id(.:format) {:action=>"destroy", :controller=>"fathers"}