【问题标题】:Ruby on Rails: Use Variable in link_to helper pathRuby on Rails:在 link_to 辅助路径中使用变量
【发布时间】:2015-08-27 15:56:59
【问题描述】:

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

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

想法?

【问题讨论】:

    标签: ruby-on-rails ruby haml


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你可以这样试试:

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

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

      【讨论】:

      • 你将如何传递参数?
      • 想出了另一种方法。
      【解决方案3】:

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

      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
      

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

      【讨论】:

        【解决方案4】:

        我觉得你可以用eval:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 2011-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-14
          相关资源
          最近更新 更多