我在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>
谢谢!
答案 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。
希望这有帮助。