Skip to content

Latest commit

 

History

History
27 lines (17 loc) · 788 Bytes

link_to-merge-warning.md

File metadata and controls

27 lines (17 loc) · 788 Bytes

情景: a和b表是一对多的关系, 希望点击a表的id能跳到b表的查询条件 a_id=id

想当然的用和国际化切换语言一样的套路,

<%= link_to lang[:name], params.merge(lang: lang[:code]) %>

当时看StackoverFlow大佬说这样写其实不好, 今天总算遇到错误了

DEPRECATION WARNING: Calling URL helpers with string keys controller, action is deprecated. Use symbols instead.

解决办法

details_path(params.merge(operation_id: operation.id))
# 改为
details_path(operation_id: operation.id)

?> 最好的解决方案

hash.slice类似String的substring,避免了不必要的数据被暴露

details_path(params.slice(:operation_id))