0
我一直在尝试过去2天,但最终失败。我想获得这样的URL:dresses/type/flower-girl
但我的一切是/dresses/type/4
Rails路由:即使使用了friendly_id,URL也不会改变
我有Shop has_many Dresses
和Type 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
而不是。
我做错了什么?
如果我使用连字符重命名名称列中的所有值,则连字符将出现在我的应用程序中的任何位置。此外,friendly_id gem的slug列已经考虑到了这一点,我只是希望gem使用slug列中的值,它失败了(或者我可能弄乱了路由)。 –
啊对,你可以展示你的迁移吗? – rb512
Homey-schmomey,它的工作原理!为什么我没有想到这个?无论如何,谢谢你。 :) –