Как добавить действие «current_user» для спокойного «пользователя»? - PullRequest
3 голосов
/ 20 июня 2010

У меня есть модель 'Пользователь', это ресурс для отдыха и методы по умолчанию, такие как 'index, show, new, create' и др.

Теперь я хочу определить новое действие "current_user ', чтобы показать информацию о текущем вошедшем в систему пользователе, которая отличается от' show '.

Когда я использую:

link_to current_user.name, :controller=>'users', :action=>'current_user'

Сгенерированный URL равен http://localhost:3000/users/current_user, исообщение об ошибке:

Couldn't find User with ID=current_user

Должен ли я изменить routes.rb?Что мне делать?

Я искал некоторые статьи, и до сих пор не знаю.

Ответы [ 3 ]

4 голосов
/ 20 июня 2010

Добавить

map.resources :users, :collection => {:current => :get}

Затем я использую:

link_to 'current', current_users_path()

Сгенерированный URL:

http://localhost:3000/users/current

Теперь все в порядке.Это лучшее решение?

2 голосов
/ 20 июня 2010

См. Мой комментарий к другому ответу для объяснения

map.current_user "users/current", :controller => :users, :action => :current

Просмотр:

link_to 'current', current_user_path
1 голос
/ 20 июня 2010

Я бы не стал добавлять новое действие для этого. Я бы проверил идентификатор, переданный методу show.

class UsersController

 def show
   return show_current_user if params[:id] == "current"
   # regular show code
 end

private
 def show_current_user
 end

end

В представлении используйте :current в качестве идентификатора пользователя при создании пути.

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