2014-02-02 2 views
0

Я хотел перенаправить пользователей, когда они входят в систему /username. Когда я использую redirect_to user, он по какой-то причине перенаправляет на /users/username. Пример. Вместо того, чтобы идти в site.com/charles, он идет до site.com/users/charles.Перенаправление в/users/username вместо/username

Я переписал в to_param, как это в моем user.rb файле:

def to_param 
    username 
end 

У меня есть тщеславие URL, связывающее с пользователем.

match './:username', to: 'users#show', via: 'get'

Мои sessions_controller.rb выглядит следующим образом:

def login 
    user = User.find_by(username: params[:session][:username]) 
    if user && user.authenticate(params[:session][:password]) 
     # Sign the user in and redirect to the user's show page. 
     sign_in user 
     redirect_to user 
    else 
     flash[:error] = 'Invalid email/password combination' 
     render 'new' 
    end 
    end 

Мой метод заключается в зарегистрировались на примере Hartl, который является, где я делаю этот учебник. Я просто не могу понять, почему он перенаправляет этот путь и как я могу перейти к простому перенаправлению на пользователя.

ответ

1

В маршрутах:

get "/:username", 
    to: "users#show", 
    as: "username" 

Затем вы можете сделать

redirect_to username_path(user) 
Смежные вопросы