0

我确信这已经得到了回答,但我到处都看过,所以我提前道歉。当我运行时:

<%= params %>

我回来了:{"controller"=>"spree/taxons", "action"=>"show", "id"=>"women/long-sleeve"}

我正在尝试访问分类单元控制器的 show 操作中的 :id 。我有:

def show
  @taxon_id = params[:id]
end

这会将“女性/长袖”分配给@taxon_id。

有没有办法从“女性/长袖”中只检索“女性”。

我想基于此渲染一个部分,例如:

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

但不是渲染“共享/女性”,而是尝试渲染“共享/女性/长袖”,这不是部分的。

谢谢你。

4

3 回答 3

1

如果您只想从您的参数哈希中获得“女性”,那么您可以这样做

@taxon_id = params[:id].split("/").first
于 2013-03-12T01:22:47.947 回答
1

我将拆分/并获取结果数组中的第一个元素:

params[:id].split('/').first
于 2013-03-12T01:22:54.957 回答
1

如果它总是采用这种格式,你可以改变你的路线:

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

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

于 2013-03-12T01:23:53.073 回答