我正在尝试创建一个简单的登录表单,用户应该可以在其中登录。我希望它重定向到用户显示操作,但它重定向到.../sessions
,我希望它重定向到`.../users/1. 我有一个看起来像这样的会话控制器(我一直在关注 Rails 教程)
def create
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
sign_in user
redirect_to user
else
render 'new'
end
end
我试图改变redirect_to user
,redirect_to users_path(user)
但它不起作用。
我的路线如下所示:
root :to => 'pages#home'
resources :users
resources :sessions, only: [:new, :create, :destroy]
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete
session/sessions.new.html.erb 看起来像这样:
<%= form_tag sessions_path do %>
<%= text_field_tag :email, params[:email], :placeholder => "E-post" %>
<%= password_field_tag :password, nil, :placeholder => "Lösenord" %>
<%= submit_tag "Logga in" %>
<% end %>
我的rails技能有点生疏,所以它可能是基本的东西。
更新
我设法通过在我的会话控制器中创建一个索引操作来“解决”它,该操作在被调用时重定向到正确的路径。我不知道(或认为)这是最好的方法。最初的问题是,当用户登录时,由于某种原因它被重定向到/sessions
,而不是我想要的根路径。当用户更新浏览器时,应用程序崩溃(因为我的会话控制器中没有索引操作)。我不知道为什么它没有重定向到正确的路径,我也尝试了 redirect_to user_path(user),但结果相同。有关如何以“正确”方式解决它的任何提示,都会很棒!当用户注册时我也遇到了同样的问题,它重定向到/users
而不是/
.