2015-12-05 28 views
0

我目前工作的一个工具创建自定义网址,这需要形成输入标签,并基于这些输入从表单参数

我的形式看起来像一个页面:

<%= form_tag({:action => "show", :controller => "tool"}) do %> 
    .... 
    .... 
    .... 
<% end %> 

在我的控制器我有这样的显示方法:

def show 
    param1 = params[:param1] 
    param2 = params[:param2] 
    param3 = params[:param3] 
    param4 = params[:param4] 

    #process params 

    end 

然后我有我的show.html.erb来处理show方法。对于这个工作,我有我的

的routes.rb:

match "/tool" => "tool#index" 
    match "/tool/show/" => "tool#show" 

我想要的网址显示像/tool/param1/param2/...,而不是仅仅/tool/show/所有参数。我尝试添加下面的路线

match "/tool/show/:param1/:param2" => "tool#show" 

但它会搞砸了,因为我的形式呼吁只show。我怎么会得到这个创建与所有参数的链接仅使用方法show,并且参数将在提交表单后生成

回答

0

您是否需要将参数用斜线分隔,或者是通常的方式做的GET参数OK?例如,像这样:

/职位/ 5电子邮件=高清&消息= GHI &名= ABC

您可以使用您的网址助手做出那样的一个链接,像这样的代码:

<%= link_to "link text", post_path(name: @post.name, email: @post.email, message: @post.message) %> 
+0

对不起,超级新的红宝石是否可以告诉我上面如何使用form_tag?并且我需要在我的routes.rb中更改哪些内容? – Thatdude1

+0

我不确定你的意思。你的表单是否在'new.html.erb'视图中? – Jason

+0

它在index.html.erb中,并且表单正在调用show,它使用show.html.erb – Thatdude1