нет вывода в пользовательских созданных представлениях - PullRequest
1 голос
/ 12 января 2011

Привет, я создал статью о контроллере и добавил следующий код

def chid
  @message='hello world'
    respond_to do |format|
    format.html
    end

end

Затем я создал

chid.html.erb
файл в
app/views/articles/

и написал следующий код

Hello world

Когда я дал следующий URL

../articles/chid 
Я не получил никакого вывода ... Я что-то упустил?

Моя часть журнала

Processing ArticlesController#show (for 127.0.0.1 at 2011-01-12 21:51:01)
 [GET] Session ID: BAh7BzoMY3NyZl9pZCIlMTA0ZWY2ZTUzYjQxZGJkZmFlMTQwNWRjYjczNTRm%0AODAiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOjpGbGFzaEhh%0Ac2h7AAY6CkB1c2VkewA%3D--de7737601817f52c1b72daca6061c5126f3a5022
 Parameters: {"action"=>"show", "id"=>"chid", "controller"=>"articles"}
 Rendering template within layouts/articles 
Rendering articles/show Completed in 0.01000 (100 reqs/sec) | Rendering: 0.00600 (60%) | DB: 0.00000 (0%) | 200 OK [localhost/articles/chid/]

Мой файл router.rb выглядит следующим образом


ActionController::Routing::Routes.draw do |map|
  map.resources :articles
map.connect ':controller/:action/:id'
   map.connect ':controller/:action/:id.:format'
   map.match ':controller/:action/' => 'Article#chid'
 end

1 Ответ

2 голосов
/ 12 января 2011

В каталоге config есть файл с именем routes.rb.Этот файл сообщает Rails, как реагировать на определенные URL-адреса, сопоставляя их действиям контроллера.

Рассмотрим пример:

match '/articles/chid' => 'Articles#chid'

Это перенаправит #{your_site_url}/articles/chid на ArticlesController s * 1010.* действие, которое, в свою очередь, будет отображать представление chid.html.erb, расположенное в views/articles.

Мы также можем указать Rails, на что направлять /:

root :to => 'Articles#chid'

Инаконец, мы могли бы также направить любой контроллер к любому действию, используя так называемые Связанные параметры:

match ':controller/:action'

В качестве последней заметки обязательно ознакомьтесь с Руководствами по Rails при маршрутизации .

Обновление :

Попробуйте использовать следующее routes.rb:

ActionController::Routing::Routes.draw do |map|
  map.connect ':controller/:action'
end

Редактировать

На основеФайл route.rb, который вы только что опубликовали, является виновником этой строки.Удалите его.

map.connect ':controller/:action/:id'

Обратите внимание, что маршруты совпадают по порядку от верха файла к основанию, и как только он находит совпадение, все готово.Он не будет смотреть на остальные ваши маршруты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...