如何在link_to中动态传输params?

时间:2014-04-14 12:23:23

标签: ruby ruby-on-rails-4 refactoring

我需要在另一个页面上的iframe中使用我的部分应用程序。所以我需要删除这些页面上的布局。

我添加到 ApplicationController

layout :current_layout
def current_layout
  if params[:layout] == false.to_s
    false
  else
    'main'
  end
end

这一直有效,直到用户点击导航中的任何链接。所以我需要在应用程序的这一部分添加每个link_to,如:

link_to 'store', store_path(params.merge({layout: params[:layout]})

我想知道也许我可以重构一下,也许可以从每个链接中删除这个params.merge

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

def my_path_helper(string, path_type, params)
  link_to(string, polymorphic_path([path_type], params.merge({layout: params[:layout]})))
end

请参阅the docs for polymorphic path here以及此answer that provides an example

这是你在找什么?