Ruby on rails :foo=>;self.controller_name.to_s+&引用_路径“;不返回路径

Ruby on rails :foo=>;self.controller_name.to_s+&引用_路径“;不返回路径,ruby-on-rails,ruby,Ruby On Rails,Ruby,请看下面的两个例子: irb(#<ActionView::Base:0x2863d58>):030:0> paintings_path => "/some-nice-alias-path" irb(#<ActionView::Base:0x2863d58>):029:0> self.controller_name.to_s + "_path" => "paintings_path" irb(#):030:0>路径 =>“/一些不错的别名路径”

请看下面的两个例子:

irb(#<ActionView::Base:0x2863d58>):030:0> paintings_path
=> "/some-nice-alias-path"

irb(#<ActionView::Base:0x2863d58>):029:0> self.controller_name.to_s + "_path"
=> "paintings_path"
irb(#):030:0>路径
=>“/一些不错的别名路径”
irb(#):029:0>self.controller_name.to_s+“_path”
=>“绘画路径”
如何返回路径而不是字符串?我需要从我的应用程序助手调用控制器路径

致以最良好的祝愿。
阿斯比约恩·莫雷尔(Asbjørn Morell)

只是一个猜测,但有点像:

method = self.controller_name.to_s + '_path'
self.send(method.to_sym)

可能会成功。
send
方法获取一个符号,并在目标对象上执行与该符号匹配的方法。

只是猜测,但类似于:

method = self.controller_name.to_s + '_path'
self.send(method.to_sym)
 send(self.controller_name.to_s + "_path")
可能会成功。
send
方法获取一个符号,并在目标对象上执行与该符号匹配的方法

 send(self.controller_name.to_s + "_path")
如果您不使用self发送,它将转到内核,这正是您想要的。根据具体情况,self可能会起作用


如果您不使用self发送,它将转到内核,这正是您想要的。self可能会工作,这取决于具体的上下文。

如果您有一个ActiveRecord实例可以使用,那么
可能会满足您的需要。使用路由感知路径生成方法比脆弱的字符串修改操作更可取。

如果您有一个ActiveRecord实例可以使用,那么
可能会满足您的需要。使用路由感知路径生成方法比脆性字符串修改操作更可取。

Perfect。工作很有魅力。:)完美的工作很有魅力。:)