2013-03-20 2 views
0

Прежде всего, довольно новый для Rails. Я слежу за учебником по использованию команды «link_to» - в основном, у меня есть некоторые ссылки с текстом «О нас», «Часто задаваемые вопросы», «Свяжитесь с нами», и я хочу, чтобы они ссылались на их соответствующие страницы.Rails 3.2.7 и 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 

Я получаю сообщение об ошибке:

NameError in Static_pages#contact_us

undefined local variable or method `‘static_pages'......etc

Любые идеи, что не так? Я думаю, это может быть потому, что учебник предназначен для рубинов 1.8.6 и Rails 2.0.2, и у меня есть Ruby 1.8.7 и Rails 3.2.7. Я слышал, что Rails печально известен тем, что не поддерживает обратную совместимость. Должен ли я изменить свой код? К чему? Спасибо за любую помощь.

C.

+0

Привет, добавлено в выше. Изменен CHarris

+0

У вас есть маршрут, объявленный для статических страниц? – muttonlamb

+0

** Ваша версия Rails устарела и уязвима для многочисленных уязвимостей безопасности! Немедленное обновление! **. Кроме того, Ruby 1.8.7 больше не будет поддерживаться в июне, вы должны как можно скорее переключиться на Ruby 1.9 или 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'} %> 
+0

согласен, плохая цитата. – m4tm4t

0

I объявление Ded это мой routes.rb:

получить "static_pages/about_us"

и теперь он работает. Спасибо за вашу помощь!