добавление метода в существующий контроллер - PullRequest
0 голосов
/ 14 августа 2011

Я довольно новичок в рельсах, и я надеюсь, что вы поможете мне понять, как работает следующее.

В настоящее время у меня есть контроллер с именем projects (projects_controller.rb). Из того, что я понимаю о ROR, у каждого контроллера есть некоторые базовые (неотъемлемые) методы, такие как index, new, create, edit, show и т. Д. Я хотел бы добавить метод под названием «help» и представление для отображения справочной информации.

В настоящее время пользователь может создавать множество проектов. Проекты содержат набор полей, которые заполняются пользователем. Я хотел бы добавить страницу справки, к которой пользователь может получить доступ (по ссылке на экране проекта), которая объясняет каждое поле проекта и как его лучше всего заполнять. Я хотел бы, чтобы это была независимая страница (не просто информация, отображаемая на странице проекта).

На данный момент URL-адрес проектов (при редактировании проекта): localhost: 3001 / projects / id / edit

Я бы хотел, чтобы путь к файлу справки был localhost: 3001 / projects / id / help

Если я хочу, чтобы файл справки находился по указанному выше пути, правильно ли я предположил, что мне нужно создать новый метод, называемый «помощь», в контроллере проектов? И если да, есть ли что-то, что мне нужно добавить в rout.rb, чтобы заставить его работать? И буду ли я использовать функцию link_to в Haml для создания ссылки на нее?

Извините, если это кажется запутанным или много вопросов. Я ценю ваше время. Если у вас есть какие-либо предложения о том, на правильном ли пути, пожалуйста, дайте мне знать. Большое вам спасибо!

1 Ответ

1 голос
/ 14 августа 2011

Я думаю, что в настоящее время у вас есть это в маршрутах

resources :products do  

end

просто замените это на

resources :products do  
  get :help, :on => :member, :as => :help  
end

И добавьте метод в контроллер и добавьте представление с именем help.erb.html (если выr используя erb) в папке views / product.

вы можете использовать help_path и help_url

...