• @Rei 嗯嗯好的,非常感您的耐心回答。

  • 是第三方服务器发送的,这个就非得用format.html吗?

  • @Rei ,你好,我用format.js,然后就一直提示Unknown Format 406错误,我这是哪里有错误呢?能不能麻烦你帮我看下。非常感谢。

    class FundsController < ApplicationController
    
      def success_recharge   #method post
        @r_user = User.find_by_id(params[:order_uid])
        return_array = params[:aoid] +params[:order_id]+params[:order_uid]+params[:price]+params[:pay_price]+'1c9a3e0eba564d68831bbeefb2ae5f72'   #第三方返回的数据
        sign = make_md5_string(return_array)
        check_uri = URI.parse("https://xxx/api/query/#{aoid}")
        response = Net::HTTP.get(check_uri)
        check_s = JSON.parse(response)
        @success_flash = check_s["status"]
        s_status = %w(payed success fee_error expire)
        respond_to do |format|
          if sign == params[:sign] && s_status.include?(@success_flash)
            format.json{render json: { status: :ok }}
            format.js
          else
            format.html{
              redirect_to home_path
              flash[:danger] = "出现错误:#{t(@success_flash)},请您及时联系我们!"
            }
            format.json{render json: { status: :unprocessable_entity }}
          end
        end
    
    end
    
    
    // success_recharge.js.erb
    
    var s_modal = $("#recharges_accounts")
    s_modal.find(".modal-body").html("<%= j render(partial: "funds/success_html",locals: {message:@success_flash}) %>")
    
    
  • @Rei 初步流程是,由用户发起post请求到第三方,然后第三方post,返回数据,我需要根据返回的数据,判断用户是否充值成功,如果成功就redirect到用户的发起充值页面,并做提示。

  • @Rei 我觉得这个还是需要的,我现在在想用js.erb处理,然后由用户手动刷新。

  • @Rei 嗯嗯,是的。提示错误

    Redirected to http://127.0.0.1:3000/login
    Filter chain halted as :logged_in_user rendered or redirected
    Completed 302 Found in 2ms (ActiveRecord: 0.4ms)
    
    

    @baboon 添加了一样会提示以上错误的

  • 求关照😂

  • @libuchao 正解,非常感谢~~

  • @insua 谢谢你的指导,我现在还是在本地呢,还没有上传到服务器。

  • @huacnlee 好的,谢谢李哥。我的用户名也有DOM标记,我看了下homeland的代码。好像当前页面(本地)的用户,您好像是直接获取用户名、用户图片等信息的。

    代码:

    Homeland 的app.coffee

    scanMentionableLogins: (query) ->
      result = []
      logins = []
      for e in query
        $e = $(e)
        item =
          login: $e.find(".user-name").first().text()
          name: $e.find(".user-name").first().attr('data-name')
          avatar_url: $e.find(".avatar img").first().attr("src")
        continue if not item.login
        continue if not item.name
        continue if logins.indexOf(item.login) != -1
    
        logins.push(item.login)
        result.push(item)
    
      console.log result
      _.uniq(result)
    
    mentionable : (el, logins) ->
      logins = [] if !logins
      $(el).atwho
        at : "@"
        limit: 8
        searchKey: 'login'
        callbacks:
          filter: (query, data, searchKey) ->
            return data
          sorter: (query, items, searchKey) ->
            return items
          remoteFilter: (query, callback) ->
            r = new RegExp("^#{query}")
            # 过滤出本地匹配的数据
            localMatches = _.filter logins, (u) ->
              return r.test(u.login) || r.test(u.name)
            # Remote 匹配
            $.getJSON '/search/users.json', { q: query }, (data) ->
              # 本地的排前面
              for u in localMatches
                data.unshift(u)
              # 去重复
              data = _.uniq data, false, (item) ->
                return item.login;
              # 限制数量
              data = _.first(data, 8)
    
              callback(data)
        displayTpl : "<li data-value='${login}'><img src='${avatar_url}' height='20' width='20'/> ${login} <small>${name}</small></li>"
        insertTpl : "@${login}"
      .atwho
        at : ":"
        limit: 8
        searchKey: 'code'
        data : window.EMOJI_LIST
        displayTpl : "<li data-value='${code}'><img src='#{App.twemoji_url}/svg/${url}.svg' class='twemoji' /> ${code} </li>"
        insertTpl: "${code}"
      true
    

    我希望的是:用DOM标记获取当前用户的名称,然后通过mentionable() 函数,把当前页面 用户名的数组传到users_controller中的mentions动作,再通过查询用户数据库,返回用户的其他相关的信息。但是实际上,我现在获取到的用户名数组,不能传到 mentions动作,但是我不知道,我现在的问题时出现在哪里了?

    非常感谢您的帮助~