我正在使用Rails 4.2和Ruby 2.1.5
这是我的路线档案:
Rails.application.routes.draw do
root to: "services#index"
resources :apis, only: [:new, :create]
resources :commons, path: "/self-care2/commonController" do
collection do
post :search, to: "commons#search"
end
end
end
这是我的commons控制器的创建动作:
def create
@api = Api.new(api_params)
if @api.save
flash[:info] = request.original_url + ".do?apiname=" + "#{@api.name}"
redirect_to root_path
else
@api.statuses.new
render :new
end
end
这是我的commons控制器的更新操作:
def update
@api = Api.find(params[:id])
if @api.update(api_params)
flash[:info] = request.original_url + ".do?apiname=" + "#{@api.name}"
redirect_to root_path
else
@api.statuses.new
render :edit
end
end
创建新记录后,它会向我发送一个网址:
http://localhost:3000/self-care2/commonController.do?apiname=loginCSP
在我更新之后,我也得到了一个闪光灯:
http://localhost:3000/self-care2/commonController/58.do?apiname=loginCSP
有什么办法可以在我更新后摆脱对象ID“/ 58”吗?
我想要它创建和更新两者都返回相同的网址。
答案 0 :(得分:1)
使用网址助手
,而不是使用request.original_url
flash[:info] = commons_url + ".do?apiname=#{@api.name}"
答案 1 :(得分:0)
您可以使用以下更新功能:
org_url = request.original_url
flash[:info] = org_url[0, org_url.rindex("/")] + ".do?apiname=" + "#{@api.name}"