0

我在显示视图中有两个表单。我需要将一个变量传递给第二种形式,它是亚马逊支付 api 的一个帖子。

在控制器中我有:

   def show
     @post = Post.find(params[:id])
     respond_to do |format|
     format.html # show.html.erb
     format.json { render json: @post }
     end
   end

在视图中,第一个表单显示了变量:

  <%= form_for(@post) do |f| %>
  <p>
  <b>referenceId:</b><br />
  <%= @post.referenceId %>
  </p>
  <% end %>

在这种形式中,我需要使用上面的@post.referenceId 设置referenceId 的变量。任何帮助,将不胜感激!

  <form action="https://authorize.payments-sandbox.amazon.com/pba/paypipeline"       method="post">
  <input type="hidden" name="referenceId" value=@post.referenceId >
  <input type="image" src="http://g-ecx.images-amazon.com/images/G/01/asp/golden_medium_paynow_withmsg_whitebg.gif" border="0">
  </form>

谢谢!

4

2 回答 2

1

我不明白你想在你的情况下做什么,但为了将变量传递给另一种形式,你可以把它放在一个部分中,然后:

<%= render :partial => "second_form", :locals => { :my_var => my_value} %>
于 2012-09-16T14:25:23.390 回答
0

您可以在@post create 方法中使用JS 响应并修改隐藏的输入值。

首先修改表单助手以使用远程

<%= form_for @post, :html => {:remote => true, :'data-type' => 'script'} do |f| %>

然后在控制器中添加

  respond_to do |format|
    format.html 
    format.js
  end

然后为 create.js.erb 添加一个新视图

添加您的 javascript 以修改视图中隐藏的 referenceID。

希望这可以帮助。

于 2012-09-16T01:23:38.323 回答