Проблемы Ruby on Rails с представлениями (rhml / html.erb) - PullRequest
1 голос
/ 17 ноября 2009

У меня проблема с представлениями в ruby ​​на рельсах.

В принципе, у меня есть обычный проект, в котором подробно перечисляются детали на

http://localhost:3000/stores/, который загружает код, найденный в index.html.erb

Теперь у меня есть леса и т.д., но когда я пытаюсь загрузить

http://localhost:3000/stores/search, который ДОЛЖЕН загрузить код из search.rhtml (должен ли он быть изменен на .html.erb или это не имеет значения?), Он просто идет в файл show.html.erb и отображает этот код вместо этого (что приводит к в ошибке из-за свойств, не передаваемых и т. д.).

Мне было интересно, что я делаю неправильно, я должен что-то настроить в файле rout.rb ?? (если это как-то связано с проблемой?)

ActionController::Routing::Routes.draw do |map|
  map.resources :stores
  map.resources :stores

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

Большое спасибо заранее за любую помощь, так как это мой первый проект Ruby on Rails

Ответы [ 2 ]

2 голосов
/ 17 ноября 2009

Если вы хотите добавить действие поиска, вам нужно настроить файл маршрутов следующим образом:

ActionController::Routing::Routes.draw do |map|
  map.resources :stores, :collection => { :search => :get }

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

Я бы назвал файл search.html.erb, хотя search.rhtml тоже будет работать. Это хорошее руководство по маршрутизации в рельсах, а здесь есть раздел , который конкретно относится к этому ответу.

0 голосов
/ 17 ноября 2009

Пытаясь ответить на каждый вопрос:

  1. У вас есть дубликат map.resources :stores, достаточно одного.

  2. Да, вы правы http://localhost:3000/stores/search загрузит search.html.erb (лучше назвать его так, чтобы следовать соглашениям) (я не вижу код с вашего контроллера, но, как вы, кажется, в процессе Учебные рельсы Я предполагаю, что вы не настраивали действие контроллера с помощью response_to)

  3. Не должно переходить в представление show.html.erb. Можете показать нам свой StoresController?

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