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
您可以根据需要修改示例。这对我来说看起来更优雅。
我有一个接收变量 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
您可以根据需要修改示例。这对我来说看起来更优雅。