【问题标题】:learn link_to on Ruby on Rails在 Ruby on Rails 中学习 link_to
【发布时间】:2016-10-08 01:41:16
【问题描述】:

这段代码:

<%= link_to 'Show', home %></td>
<%= link_to 'New Post', new_home_path %>

上面的代码默认生成脚手架, 如果我添加这样的代码:

<%= link_to 'About', about %></td>

->:

<%= link_to 'Show', home %></td>
   <%= link_to 'About', about %></td>
    <%= link_to 'New Post', new_home_path %>

然后运行/刷新显示错误,为什么会出错?我知道错误是添加代码&lt;%= link_to 'About', about %&gt;&lt;/td&gt; 但我在homesController 中没有看到home 和new_home_path?和 routers.rb 中的一样。

【问题讨论】:

  • 你应该edit你的问题来改进它的语法。照原样,我不明白你在问什么
  • 对不起,Luka kerr4
  • Kinoe,试着让你的问题更清楚一些,并向我们展示确切的错误信息。您当前的routes.rb 和控制器文件是什么样的?
  • this routes.rb Rails.application.routes.draw do resources :homes end and this error undefined local variable or method `about' for #:0x49a0778>
  • &lt;%= link_to 'About', about_path %&gt;

标签: ruby-on-rails ruby url resources


【解决方案1】:

要获取关于页面,您需要创建路由、控制器和视图页面。

rails g controller static about

此网址将起作用: &lt;%= link_to 'About', static_about_path %&gt;&lt;/td&gt;

如果你只想:about_path 而不是 static_about_path

然后在 config/routes.rb 文件中

更改 -> get 'static/about'get 'about' =&gt; 'static#about'

【讨论】:

  • 对于我足够了解的路线,#为什么我必须再次创建静态控制器,如果我有家庭控制器,问,about_path 如何显示视图页面,不可能每个我想创建新页面我必须用控制器制作。
  • @Kinoe 如果你已经有家庭控制器,那么在 def about; end 中添加 about 方法,并将路由更改为 get 'about' =&gt; 'home#about'
  • Thx 7urkm3n,我才明白我的问题,我必须添加 home_about + _path。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多