[英]Pretty urls in rails
我正在努力使其正常运作。 这是我现在的耙路:
groups GET /groups(.:format) groups#index
POST /groups(.:format) groups#create
new_group GET /groups/new(.:format) groups#new
edit_group GET /groups/:id/edit(.:format) groups#edit
group GET /groups/:id(.:format) groups#show
PATCH /groups/:id(.:format) groups#update
PUT /groups/:id(.:format) groups#update
DELETE /groups/:id(.:format) groups#destroy
我想做的是从链接中删除“组”并添加slug而不是id。 现在是我的控制器:
class GroupsController < ApplicationController
before_action :find_group, only: [:show]
after_action :assign_slug, only: [:create, :update]
def index
@groups = Group.all
end
def show
end
def new
@group = Group.new
end
def create
@group = Group.new(group_params)
if @group.save
flash.notice = "Group has been successfully created!"
redirect_to @group
binding.pry
else
flash.alert = "oops!"
redirect_to action: :new
end
end
private
def group_params
params.require(:group).permit(:title, :description, :country, :city, :category_id)
end
def find_group
@group = Group.find_by_slug(params[:slug])
end
def assign_slug
@group.update(slug: @group.title.parameterize)
end
end
我该如何运作? 谢谢。:)
如果这是您想要的:
routes.rb
get ':slug', to: 'pages#show', as: :groups_show
put ':slug', to: 'pages#update', as: :groups_update
delete ':slug', to: 'pages#destroy', as: :groups_delete
这样,子弹将作为参数被捕获并发送到控制器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.