0

私は過去2日間試してきましたが、最終的に失敗しました。このようなURLを取得したいのです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 は魔法のようにカスタム ルートをサポートしていないと思うので、コントローラーで id ではなくスラッグでレコードを探すことになるかもしれません。

于 2012-05-25T18:12:43.277 に答える