微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rails-即使在我的服务器上显示“已重定向到http:// localhost:3000”,也无法重定向

如何解决Rails-即使在我的服务器上显示“已重定向到http:// localhost:3000”,也无法重定向

我有一个form_with可以在我的服务器上使用,但不能在我的兄弟中使用:

我认为自己的表单:

<%= form_with url: sessions_path,method: "post" do |f|%> 
          <h3 class="text-center text-info">Se Connecter</h3>
          <div class="form-group">
              <%= label_tag "email","Adresse mail:",class: "text-info" %><br>
              <%= f.email_field "email",class: "form-control" %>
          </div>
          <div class="form-group">
              <%= label_tag "password","Mot De Passe",class: "text-info" %><br>
              <%= f.password_field "password",class: "form-control" %>
          </div>
          <div class="form-group" style="padding: 20px;">
            <%= f.submit "Se connecter",class: "btn btn-info btn-md" %>
          </div>
      <% end %>

我的控制器:

def create
  user = User.find_by(email: params[:email])

  if user && user.authenticate(params[:password])
    session[:user_id] = user.id
    redirect_to gossips_path,:notice => "Bienvenue <%= User.find_by(id: session[:user_id]).first_name %>"
  else
    flash.Now[:danger] = 'Email ou Mot De Passe invalide'
    render 'new'
  end
end

我的服务器:

Started POST "/sessions" for ::1 at 2020-10-04 13:10:25 +0200
Processing by SessionsController#create as JS
  Parameters: {...}
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."email" = $1 LIMIT $2  [["email","..."],["LIMIT",1]]
  ↳ app/controllers/sessions_controller.rb:8
#<User:0x00007f667d7f36f0>
Redirected to http://localhost:3000/gossips
Completed 302 Found in 246ms (ActiveRecord: 0.2ms)


Started GET "/gossips" for ::1 at 2020-10-04 13:10:26 +0200
Processing by GossipsController#index as JS
  Rendering gossips/index.html.erb within layouts/application
  Gossip Load (0.4ms)  SELECT "gossips".* FROM "gossips"
  ↳...
  Rendered gossips/index.html.erb within layouts/application (75.5ms)
Completed 200 OK in 102ms (Views: 85.6ms | ActiveRecord: 12.8ms)

但是我的浏览器停留在同一页面上。我不知道为什么 你能帮我吗?

解决方法

<%= form_with url: sessions_path,method: "post",local: true do |f|%>
  # ...
<% end %>

form_withform_for不同,默认为remote: true。这意味着该表单将默认发送AJAX请求,因此重定向在浏览器中不执行任何操作。您可以通过以下方式查看其AJAX请求:

Processing by SessionsController#create as JS

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。