因此,在我的Rails模型中,我正在执行以下操作以生成“SEO友好”的slug:
def to_param
"#{id}-#{title.parameterize}"
end
因此生成类似:example.com/items/1-example-title
但是当我检查我的日志时,SQL调用就是:
SELECT * FROM `items` WHERE (`items`.`id` = '1-example-title') LIMIT 1
这似乎适用于MySQL,但PostgreSQL就可以解决它。
那么,我怎样才能让我的SQL查询只使用1
来代替完整的slug?{/ p>
答案 0 :(得分:5)
确保使用标准查找呼叫。
Model.find(params[:id])
如果您使用其他语法,例如
Model.find_by_id(params[:id])
Model.first(:conditions => { :id => params[:id] })
然后你需要将参数转换为整数。
params[:id].to_i