【问题标题】:Ruby on rails link_to syntaxRuby on rails link_to 语法
【发布时间】:2009-02-13 13:38:34
【问题描述】:

在关注tutorial 之后我发现了。我现在重做一遍,没有脚手架部分,以便更好地学习它。

但是,编辑我的 \app\views\home\index.html.erb 以包含:

<h1>Rails test project</h1>
<%= link_to "my blog", posts_path>

我收到一个错误:

undefined local variable or method `posts_path' for #<ActionView::Base:0x4e1d954>

在我这样做之前,我运行了rake db:create,定义了一个迁移类并运行了rake db:migrate,一切都没有问题。

所以数据库应该包含一个帖子表。但是那个link_to 命令似乎找不到posts_path。该变量(或者它甚至是一个函数?)可能是通过脚手架例程定义的。

我现在的问题是;我如何自己手动执行,定义posts_path

【问题讨论】:

    标签: ruby-on-rails scaffolding link-to


    【解决方案1】:

    您需要在config/routes.rb 中定义帖子的路径

    Rails 2.x 语法:

    map.resources :posts
    

    Rails 3.x 语法:

    resources :posts
    

    【讨论】:

    • 有效。比较了项目中使用脚手架的 routes.rb 文件和当前的文件。那条线是唯一缺少的东西。添加后,索引页面按预期工作。
    【解决方案2】:

    _path 方法通常是动态生成的。当没有指定对象的路由或在这种情况下您显式调用的方法时,会出现方法丢失错误。

    定义路线应该可以解决这个问题。上面的 HermanD 展示了一种方法。

    您可以从 Rails 应用的根目录运行“rake routes”以查看所有已配置的路由

    【讨论】:

      【解决方案3】:

      如果这正是您的 erb 包含的内容,则它缺少 scriptlet 元素末尾的百分号。不知道这是否导致了你的问题,或者我把事情太从字面上理解了......

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多