【问题标题】:Spree_auth_devise: how to add create.js.erb file?Spree_auth_devise:如何添加 create.js.erb 文件?
【发布时间】:2017-01-08 15:04:09
【问题描述】:

我有模态表单来登录:

= form_for(Spree::User.new, :url => spree.create_new_session_path, :as => :spree_user, html:{id: 'log_in_user', :'data-type' => 'json'}, remote: true) do |f|
  = f.email_field :email, :class => 'form-control', :tabindex => 1, :placeholder => Spree.t(:email)
  = f.password_field :password, :class => 'form-control', :tabindex => 2, :placeholder => Spree.t(:password)
  = f.submit 'Submit', :tabindex => 3, :class => 'btn btn-lg btn-success btn-blue'

还有一些js进入我的welcome.js

$("form#log_in_user, form#register_user").bind("ajax:success", function(event, xhr, settings) {
    $(this).parents('.modal').modal('hide');
  })

它工作正常,但我想重新加载部分“登录栏”

我尝试创建 user_sessions/create.js.erb

alert('123');
$(".user-area").load("<%= j render partial: 'shared/login_bar' %>");

但它不起作用。 所以我无法理解 spree_auth_devise 视图是如何工作的,我可以在哪里以及如何覆盖它们并添加我自己的 js.erb 文件。有什么帮助吗?

顺便说一句,user_sessions_controller.rb 与 format.js 部分:

def create
  if spree_user_signed_in?
      respond_to do |format|
        format.html {
          flash[:success] = Spree.t(:logged_in_succesfully)
          redirect_back_or_default(after_sign_in_path_for(spree_current_user))
        }
        format.js {
          render :json => {:user => spree_current_user,
                           :ship_address => spree_current_user.ship_address,
                           :bill_address => spree_current_user.bill_address}.to_json
        }
      end

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-4 spree spree-auth-devise


    【解决方案1】:

    app/views/spree/user_sessions/create.js.erb 添加一个文件。

    添加代码,

    $(".user-area").html('<%= j render partial: "spree/shared/login_bar" %>');
    

    【讨论】:

    • 你确定有.user-area 上课login_bar html parent 吗?
    • 是的。为了测试,我添加了 alert('123');在代码之前,但在 ajax 发布后没有出现警报。
    • alert('123') 将不起作用,因为此 js 不是 DOM 的一部分。您可以检查 console.log('123') 以验证是否调用了此 js。或检查日志以查看此文件是否已呈现。
    • 检查了 console.log('123') - 什么都没有(
    • 检查您的 Rails 服务器日志,如果 spree/user_sessions/create.js.erb 模板在提交请求中呈现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    • 2020-11-21
    • 2011-07-26
    • 1970-01-01
    • 2014-08-24
    • 2012-06-15
    相关资源
    最近更新 更多