Как определить собственный путь в рельсах? - PullRequest
8 голосов
/ 17 сентября 2009

У меня есть модель пользователя. Если я сделаю:

def my_action
  @user = User.new
end

тогда

  <% form_for(@user) do |f| %>

Я получаю

undefined method `users_path' for #<ActionView::Base:0x1b4b878>

Что имеет смысл, потому что я не сопоставил это с ходом map.resources :users. .. но я не хочу делать это так, потому что мне не нужны все ресурсы.

Как я могу просто определить этот user_path метод в моих маршрутах?

Ответы [ 3 ]

5 голосов
/ 17 сентября 2009

Вы также можете настроить маршруты отдыха . Например, в моем приложении только действия index и show подходят для определенных контроллеров. В моем файле rout.rb у меня есть несколько маршрутов, подобных этому:

map.resources :announcements, :only => [:index, :show]

Вы также можете использовать :except, если это более подходит.

4 голосов
/ 09 мая 2014

С тех пор как я пришел сюда в поисках способа создания помощников в routs.rb, вот способ сделать это:

get '/users/:id/' =>'users#show', :as => :user
3 голосов
/ 17 сентября 2009

Вы можете сопоставить пользовательские маршруты в вашем файле rout.rb следующим образом ...

map.users '/users', :controller => 'user', :action => 'index'

Это дает вам users_path помощника, которого вы ищете.

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