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

时间:2015-08-27 15:56:59

标签: ruby-on-rails ruby haml

我有一个接收变量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

以及其他十几件事,但似乎没有任何效果。

思想?

4 个答案:

答案 0 :(得分:9)

你可以这样试试:

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

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

您可以像这样添加链接助手的参数:

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

答案 3 :(得分:0)

我认为你可以使用eval

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