在rails中检索两部分参数[:id]的第一部分

时间:2013-03-12 01:19:07

标签: ruby-on-rails model-view-controller controller params viewparams

我确信之前已经回答过,但我到处都是,所以我提前道歉。我跑的时候:

<%= params %>

我回来了:{“controller”=&gt;“spree / taxons”,“action”=&gt;“show”,“id”=&gt;“women / long-sleeve”}

我正在尝试在taxons控制器的show动作中访问:id。我有:

def show
  @taxon_id = params[:id]
end

这将'women / long-sleeve'分配给@taxon_id。

有没有办法从“女性/长袖”中找回“女性”。

我想基于此呈现部分,例如:

<% if @taxon_id == params[:id] %>
  <%= render 'shared/#{#taxon_id}' %>
<% end %>

但不是渲染'共享/女性',而是试图渲染'共享/女性/长袖',这不是偏袒。

谢谢。

3 个答案:

答案 0 :(得分:1)

如果你只想从你的params哈希中找到“女人”那么你可以做

@taxon_id = params[:id].split("/").first

答案 1 :(得分:1)

我会在/上拆分并抓住结果数组中的第一个元素:

params[:id].split('/').first

答案 2 :(得分:1)

如果它始终采用该格式,您可以更改路线:

match '/spree/taxons/:id/:slug' => 'taxons#show'

您的:id字段将正确匹配。