设置元数据Rails控制器

时间:2018-06-14 21:08:31

标签: ruby-on-rails ruby ruby-on-rails-5

我有一个包含大量网页的网站。我建立了一个CMS部分,允许我通过SEO友好的URL找到CMS页面,如:

example.com/some-url

路线如下:

get '/:url_key', to: 'cms#find_page'

然后在我的控制器中,我可以通过运行以下查询找到该页面。

page = CMS.find_by(url_key: params[:url_key])

然后我可以使用page.title page.meta_description等从CMS对象中获取元数据

我的网站的另一部分就像一个更传统的rails应用程序,其中包含以下路由:

get '/another-controller/:url_key', to: 'another_controller#some_action

所以我有这些其他页面用于从数据库中提取记录,如产品。控制器根据url_key决定运行哪个查询。目前我只是在我的控制器中设置@title = "some title"@meta_description = "some description,如果该变量存在,则会将其加载到我的HTML响应的头部。

在控制器中静态设置titlemeta_description对我来说似乎不太干净。我该怎么处理?我应该创建一个MetaData类,我静态地在那里分配那些标题,并像控制器​​和动作名称一样传递给类构造函数?我应该改为创建CMS页面而不是呈现cms页面的内容而不是渲染相关文件吗?我必须维护URL结构,因为这些页面已经在Google上排名多年。

0 个答案:

没有答案