Я хочу, чтобы у пользователя была собственная страница,/users/52. Поэтому я добавил новый контроллер, чтобы это произошло, контроллер - user_controller.rb. Но теперь другие функции не работают.Devise - ActiveRecord :: RecordNotFound
Когда у меня есть маршруты, как показано ниже./Users/sign_in не работает. Но работает/users/1.
#Users/show!!!
match 'users/:id' => 'users#show', via: :get
# or
get 'users/:id' => 'users#show'
# or
resources :users
devise_for :users, controllers: {
sessions: 'users/sessions'
}
При использовании маршрутов, как показано ниже. Работа/users/1 dosen't работает, но пользователи/sign_in работают.
devise_for :users, controllers: {
sessions: 'users/sessions'
}
class UsersController < ApplicationController
#def show
# \t @user = User.friendly.find(params[:id])
# \t @links = Link.all.where(user_id: @user).publish
#end
def index
\t @users = User.all
end
def show
\t @user = User.friendly.find(params[:id])
\t @links = Link.all.where(user_id: @user).publish
end
def new
\t
end
end
Создал ли пользователь, с которым вы пытаетесь войти, ошибка означает, что что-то не найдено в базе данных (скорее всего, пользователь) – bjhaid
Пользователь создан. Поскольку я могу войти на сайт, если я удалю эти строки: сопоставьте «users /: id» => «users # show», через:: get # или get 'users /: id' => 'users # show' # или Ресурсы: пользователи – VictorBlomberg
Вы пытались использовать ресурсы: пользователи, только: [: show] '? Я боюсь, что другие варианты не будут работать, потому что действие над проектом будет интерпретироваться как идентификатор (т. Е. В '/ users/sign_in', новый будет передан вашему UserController как' id: 'sign_in''). Кроме того, если вы не ограничиваете 'resources'': show', он может маскировать маршруты разработки. – taglia