Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:在链接到助手路径的链接中使用变量_Ruby On Rails_Ruby_Haml - Fatal编程技术网

Ruby on rails RubyonRails:在链接到助手路径的链接中使用变量

Ruby on rails RubyonRails:在链接到助手路径的链接中使用变量,ruby-on-rails,ruby,haml,Ruby On Rails,Ruby,Haml,我有一个HAML部分,它接收一个变量bar,我想将该变量注入到link_to path中 例如: = link_to new_foo_path, class: 'source card' do .stuff 我想把foo换成bar 我试过: = link_to new_#{bar}_path, class: 'source card' do 还有一打其他的东西,但似乎什么都不管用 想法?您可以向链接帮助器添加如下参数: link_to "New Foo", new_foo_path(

我有一个HAML部分,它接收一个变量
bar
,我想将该变量注入到link_to path中

例如:

= link_to new_foo_path, class: 'source card' do
    .stuff
我想把foo换成bar

我试过:

= link_to new_#{bar}_path, class: 'source card' do
还有一打其他的东西,但似乎什么都不管用


想法?

您可以向链接帮助器添加如下参数:

link_to "New Foo", new_foo_path(bar: "bar")
= link_to custom_path(bar), class: 'source card' do

您可以这样尝试:

link_to "New Foo", new_foo_path(bar: "bar")
= link_to custom_path(bar), class: 'source card' do
link\u发送(“新建”{bar}\u路径),类:“源卡”do


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

我认为您可以使用
eval

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

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

在helpers/application\u helper.rb中创建视图帮助器函数:

def custom_path pathvar
   if pathvar == 'foo'
      new_foo_path
   elsif pathvar == 'bar'
      new_bar_path
   end
end
在您看来,您可以这样使用它:

link_to "New Foo", new_foo_path(bar: "bar")
= link_to custom_path(bar), class: 'source card' do

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

那么,您将如何在其中传递参数呢?找到了另一种方法。