Rails 3.2.7和link_to

时间:2013-03-20 00:32:19

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

首先,Rails相当新鲜。我一直在关注使用'link_to'命令的教程 - 基本上,我有一些链接文本'关于我们','常见问题','联系我们',我希望他们链接到他们各自的页面。

在本教程之后,我的contact_us.html.erb文件中的代码如下所示:

<%= link_to "About Us", {:controller => ‘static_pages’, :action => ’about_us’} %>

我的控制器名为static_pages_controller.rb,我在该文件中有一个about_us方法,其中没有代码:

def about_us
end

我的控制器代码是:

class StaticPagesController < ApplicationController
  def about_us
  end

  def faq
  end

  def contact_us
  end

  def t_and_c
  end

  def t_and_c_competition
  end

  def show
  end
end

我收到错误:

  

Static_pages中的NameError#contact_us

     

未定义的局部变量或方法`'static_pages'......等等

任何想法有什么不对?我想这可能是因为本教程适用于ruby 1.8.6和Rails 2.0.2,而且我有Ruby 1.8.7和Rails 3.2.7。我听说Rails因为没有向后兼容而臭名昭着。我应该更改我的代码吗?要什么?谢谢你的帮助。

℃。

2 个答案:

答案 0 :(得分:1)

嗨我认为你的问题是你在link_to方法中传递参数值时使用的是而不是普通的单引号(')或加倍的引号(“)

改变这个:

<%= link_to "About Us", {:controller => ‘static_pages’, :action => ’about_us’} %>

到此:

<%= link_to "About Us", {:controller => 'static_pages', :action => 'about_us'} %>

答案 1 :(得分:0)

我将此添加到我的routes.rb:

获取“static_pages / about_us”

现在它有效。谢谢你的帮助!