在我的Rails应用程序我生成一个URL,它的正确的模式如下:如何在rails应用程序中将特定的url模式发送到404?
https://example.com/equipment_details/slug
这是URL谷歌应该是索引。但由于使用javascript的分页实现,在平台上有另一个活动的URL,如下所示:
http://localhost:3000/equipment_details/slug?page=2
。
控制器方法是象下面这样:
class EquipmentsController < ApplicationController
def equipment_details
@equipment = Equipment.friendly.active.includes(:country, :manufacturer, :category, :user).find(params[:id])
if @equipment
@products = @equipment.category.equipments.active.where.not("equipment.id = ?", @equipment.id)
@countries = Country.active.all
@states = State.active.all
@cities = City.active.all
@services = Service.active.where("category_id = ? AND sub_category_id = ? AND country_id = ? AND state_id = ? AND city_id = ?", @equipment.category_id, @equipment.sub_category_id, @equipment.country_id, @equipment.state_id, @equipment.city_id)
respond_to do |format|
format.js
format.html
format.pdf do
render :pdf => "vendaxo_#{@equipment.title}",
:layout => 'equipment_details_pdf.html.erb',
:disposition => 'attachment'
end
end
else
flash[:error] = "Equipment not found."
redirect_to root_path
end
end
end
基本上在两个链接的主要内容是,除了在页脚的JavaScript分页内容相同。这导致SEO优化的问题。我怎样才能发送与第二种模式的网址,即与?page=2
到404
页?有没有办法从轨道路线文件做到这一点?
请检查我添加了控制器方法 – user3576036
那'name'在URL实际上不是一个控制器方法名,但是从'friendly_id了'slug' ' – user3576036