RubyonRails-span标记通过链接到的javascript刷新

RubyonRails-span标记通过链接到的javascript刷新,javascript,jquery,ruby-on-rails,link-to,Javascript,Jquery,Ruby On Rails,Link To,我有一个span标记,它由javascript刷新。因此,在我看来,此代码将显示以下数字: <span id="actual_nbr"></span> # Show the number via javascript 现在我想在链接_中使用此值来创建对象: <%= link_to "OK", { :action => "create", :nbr => content_tag(:span, 'actual_nbr') }, :confirm =&g

我有一个span标记,它由javascript刷新。因此,在我看来,此代码将显示以下数字:

<span id="actual_nbr"></span>   # Show the number via javascript
现在我想在链接_中使用此值来创建对象:

<%= link_to "OK", { :action => "create", :nbr => content_tag(:span, 'actual_nbr') }, :confirm => "Are you sure?", :method => :create %>
如果我检查我的元件,我会得到:

<a confirm="Are you sure?" data-method="create" href="/purchases?nbr=%3Cspan%3Eactual_nbr%3C%2Fspan%3E" rel="nofollow">OK</a>
并且,它返回一个错误,因为span标记被视为文本而不是html标记:

{"_method"=>"create",
 "authenticity_token"=>"7CC6I1HrmFZcT2Qrkriafago1ZGhizX4cJL+FaSyRkw=",
 "nbr"=>"<span>actual_nbr</span>"}
做我想做的事最好的方法是什么


谢谢

Ruby是服务器端的,无法查看JavaScript在客户端所做的工作的结果,因此如果没有JavaScript的帮助,您就无法做到这一点。我建议从Rails向元素添加一个id,比如asid:purchaseIt,并向锚点添加一个HTML5数据属性:data nbr=nojs,然后使用您需要的内容从JavaScript更新元素:document.getElementById'purchaseIt'。setAttribute'data-nbr',1'

我用Ajax解决了我的问题

在我的javascript中:

function submitForm() {
      $.ajax({
           type:'POST', 
           url: '/purchases', 
           data: $.param({ purchase: {id: variable_id, nbr: variable_nbr }})
      });
 }
我认为:

<button type="button" onclick="submitForm()">Send data</button>
我还使用了purchases.create而不是purchases.build

<button type="button" onclick="submitForm()">Send data</button>
def create
        Rails.logger.debug "***************************************"
        Rails.logger.debug params
        Rails.logger.debug "***************************************"
        @purchase = current_user.purchases.create(purchase_params)
        if @purchase.save
            redirect_to @purchase.paypal_url(user_path(current_user), purchase_params[:id], purchase_params[:nbr])
        else
            redirect_to(root_url)
        end
    end