0

过去两天我一直在尝试,但最终失败了。我想获得这样的网址:dresses/type/flower-girl但我所拥有的只是/dresses/type/4

我有Shop has_many DressesType has_many Dresses。在我的Dress表中,我有type_id引用该Type表的列。

这是我的代码:

# Routes file
resources :dresses 
match '/dresses/type/:id' => 'dresses#type'

# Type.rb model
extend FriendlyId
friendly_id :name, use: :slugged

# Dresses Controller
def index
  @types = Type.all
end

def type
  @dresses = Dress.find_all_by_type_id(params[:id])
end

# View (index.html.erb)
<% @types.each do |type| %>
  <%= link_to type.name, :action => "type", :id => type.id %>
<% end %>

我也尝试过在路由、控制器和视图中使用:name替换,但它们却产生了。:id/dresses/type/Flower%20Girl

我做错什么了?

4

1 回答 1

3

好的,在您的索引视图中,将其更改
<%= link_to type.name, :action => "type", :id => type.id %>
<%= link_to type.name, :action => "type", :id => type.slug%>

我想friendly_id 并不神奇地支持自定义路由,因此您最终可能会在控制器中通过 slug 而不是 id 来查找记录。

于 2012-05-25T18:12:43.277 回答