【问题标题】:unable to create a dynamic link in RoR [duplicate]无法在 RoR 中创建动态链接 [重复]
【发布时间】:2013-12-02 10:45:12
【问题描述】:

我是 RoR 的初学者。我正在尝试在页面上创建链接。我希望页面上有多个链接,并根据单击的链接将参数传递给链接的 url。

我试过这样做:

routes.rb:

get '/search/facet/:param' => 'product_search#facet'

查看:

<%= link_to "MORE", /search/facet/(param => taxon)

product_search_controler.rb:

def facet
    @facetVariable = "hello"
    @taxonVariable = params[:param]
end

但每当我点击 MORE 链接时,我都会收到 404。此外,链接页面的网址是 /search/facet,而不是我想要的 /search/facet/param=taxon

谁能指出我的错误

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    您可以使用命名路由:

    get '/search/facet/:param' => 'product_search#facet', :as => :product_search_facet
    

    在您看来,假设 taxon 是一个局部变量:

    <%= link_to 'MORE', product_search_facet_path(taxon) %>
    

    Rails 指南,供参考:

    http://guides.rubyonrails.org/routing.html

    【讨论】:

      【解决方案2】:

      你可能想试试这个:

      get '/search/facet/:param' => 'product_search#facet', :as=>:search
      
      <%= link_to "MORE", search_url(:param => taxon)
      

      【讨论】:

      • 另外,如果要将分类单元作为字符串,则需要使用 'taxon')
      • 这给出了 '/search/facet/taxon` 而不是 search/facet/param=taxon。我仍然可以使用 params[:param] 在控制器中获取分类单元的值吗?
      • 是的,你会的。 Route 模式中的 PARAM 是一个占位符。您可以使用 params[:param] 来获取值 'taxon'。试试看吧。
      • 它在视图上显示 nil,我的视图是 '/product_search/facet.html.erb'。 &lt;h1&gt;&lt;%=@facetVariable.inspect%&gt;&lt;/h1&gt; &lt;h2&gt;&lt;%=@taxonVariable.inspect%&gt;。两个变量都显示为零
      • 哦,很高兴它成功了。
      猜你喜欢
      • 2020-01-22
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      相关资源
      最近更新 更多