在Rails中的视图中将参数从一个表单传递到另一个表单

时间:2012-09-16 00:47:52

标签: ruby-on-rails

我在Show视图中有两个表单。我需要将变量传递给第二个表单,这是一个发布到Amazon payment 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>

谢谢!

2 个答案:

答案 0 :(得分:1)

我没有具体了解你想要做什么,但是为了将一个变量传递给另一个形式,你可以把它放在一个部分然后:

<%= render :partial => "second_form", :locals => { :my_var => my_value} %>

答案 1 :(得分:0)

你可以在@post创建方法中用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。

希望这有帮助。