Я пытался в течение последних 2 дней, но в конечном итоге не смог. Я хотел бы получить URL, как это: dresses/type/flower-girl
, но все, что я получил это /dresses/type/4
Rails Routing: URL-адрес не изменится даже после использования friendly_id gem
У меня 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
вместо этого.
Что я сделал не так?
Если я переименую все значения в столбце имен с помощью дефиса, тогда дефинированные слова будут отображаться повсюду в моем приложении. Кроме того, столбец slug с драгоценным камнем friendly_id уже позаботился об этом, я просто хочу, чтобы драгоценный камень использовал значения в столбце slug, которые ему не удалось (или, может быть, я испортил маршрутизацию). –
ах, вы можете показать свою миграцию? – rb512
Хоум-шмомей, он работает! Почему я не подумал об этом? Во всяком случае, спасибо человеку. :) –