Ruby on Rails:在 link_to 辅助路径中使用变量

Ruby on Rails: Use Variable in link_to helper path

我有一个接收变量 bar 的 HAML 部分,我想在 link_to 路径中注入该变量。

例如:

= link_to new_foo_path, class: 'source card' do
    .stuff

我想用 bar 替换 foo。

我试过:

= link_to new_#{bar}_path, class: 'source card' do

还有很多其他东西,但似乎没有任何效果。

想法?

您可以像这样向 link 助手添加参数:

link_to "New Foo", new_foo_path(bar: "bar")

你可以这样试试:

link_to send("new_#{bar}_path"), class: "source card" do

基本上,send 使某物成为一种方法或变量,它允许您将该字符串中的所有内容组合到一个变量中。

我想你可以使用 eval:

= link_to eval("new_#{bar}_path"), class: 'source card' do

我遇到了类似的情况,所以我创建了一个视图助手。对于你的情况,我想你可以做类似的事情。

helpers/application_helper.rb:

中创建一个视图辅助函数
def custom_path pathvar
   if pathvar == 'foo'
      new_foo_path
   elsif pathvar == 'bar'
      new_bar_path
   end
end

那么在你看来,可以这样使用:

= link_to custom_path(bar), class: 'source card' do

您可以根据需要修改示例。这对我来说看起来更优雅。