关于link_to的简单Rails问题

时间:2013-04-14 16:12:16

标签: ruby-on-rails link-to

我的代码看起来像我需要理解的那样:

<ul class="dropdown-menu">
    <li><%= link_to  t('menubar.yes.okay') , admin_ok_path %></li>
</ul>

在此代码中,menubar.yes.okay是什么以及定义在哪里?同样,admin_ok_path定义在哪里?

我问的原因是因为我想添加另一个菜单栏项。如果我写了像

这样的东西
<li><%= link_to  t('menubar.yes.no') , admin_ok_no %></li>

然后我收到一条错误消息,指出admin_ok_no未定义。那么,为了设置这个新的菜单栏选项,我需要定义什么?我已经在No: "No"中添加了en.yml,但仍然是同样的错误。请注意,我已经检查了我的routes.rb并且没有admin_ok_path的定义,但是它可以正常工作 - 它会显示在菜单栏中。

4 个答案:

答案 0 :(得分:0)

这是动态定义的。如果你运行

rake routes

您将获得所有可用的路线,

http://guides.rubyonrails.org/routing.html

admin_ok_path是rails自己为匹配路由admin_ok定义的路径助手,

如果您从应用程序路径目录运行rake路由,您将获得匹配的admin_ok路由。

admin_ok_path将提供相对网址,admin_ok_url将为您提供绝对网址。

答案 1 :(得分:0)

帮助tI18n.t的缩写,用于国际化

例如,在config / en.yml中,如果你有:

menubar:
  yes:
    okay: Okay

这将写成“Okay”

admin_ok_path是路径路径的动态生成助手。您可以通过运行rake routes

查看所有这些内容

答案 2 :(得分:0)

ttranslate的缩写。您将在config/locales中找到本地化文件 - 它们基本上是定义字符串的YAML文件。查看更多here

admin_path_ok方法是返回路径的路由助手。查看您的config/routes.rb文件。更多信息here

答案 3 :(得分:0)

'menubar.yes.okay'可能在'config / locales / en.yml'中定义。 rake routes | grep admin将为您提供与admin相关的所有路线。