Rails:如何在基于资源的link_to调用中添加其他参数?

Chr*_*hue 3 ruby rest ruby-on-rails link-to

我有一个在routes.rb中定义的资源,如下所示:

map.resources :users
Run Code Online (Sandbox Code Playgroud)

我喜欢使用最干净的link_to选项,它将是:

link_to @user
Run Code Online (Sandbox Code Playgroud)

我想在这个调用中添加一个额外的参数:"view = local"

如果我使用user_path,我会这样做:

link_to user_path(@user, { :view => 'local' })
Run Code Online (Sandbox Code Playgroud)

有没有办法在不明确包含user_path函数的情况下获得相同的结果?理想情况下,我会做以下事情:

link_to @user, { :view => 'local' }
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

小智 5

不,你不能.您唯一真正的控制是能够在链接标记上添加更多参数.link_to有第三个参数,可以让你在HTML标签上添加title属性之类的东西,但它不会修改href值.

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#M001597

继续使用user_path帮助程序.与Rails中的大多数内容一样,如果您想要执行默认操作,那么它将很简单.你想做一些更复杂的事情,所以你必须做更多的工作:)