2010-02-16 2 views
1

Я новичок в Rails и получаю следующее сообщение об ошибке:неинициализированным постоянная с рельсов дружбой

NameError in FriendshipsController#create 
uninitialized constant FriendshipsController 

это проявляется также:

{"authenticity_token"=>"eQvv3flATE+P1TEErOWP/6fM8dEOIBxltobCxtM/F18=", 
"friend_id"=>"32"} 

Когда я нажимаю на ссылку «Добавить в друзья» на мои пользователи показывают страницу. Я следую railscast о самореференциальных ассоциациях с T, но я продолжаю получать эту ошибку, и я не могу найти никакой информации об этом, даже то, что означает «неинициализированная константа». Я собрал из Интернета, что он МОЖЕТ быть связан с плагином act_as_authenticated, но я следил за одним исправлением, которое я нашел, и оно не сработало.

Вот код моего пользователя страницы/show.html.erb:

<%= link_to "Add Friend", friendships_path(:friend_id => @user.id), :method => :post %> 

и код от моего контроллера приятельств:

def create 
    @friendship = current_user.friendships.build(:friend_id => params[:friend_id]) 
    if @friendship.save 
    flash[:notice] = "Added friend." 
    redirect_to root_url 
    else 
    flash[:error] = "Unable to add friend." 
    redirect_to root_url 
    end 
end 

Где я буду неправильно здесь. У меня нет ни малейшего понятия, что вызывает это. Пожалуйста, дайте мне знать, если мне не хватает необходимого кода.

ответ

1

Сложно сказать. Вы должны опубликовать верхнюю часть своего класса ... требует, определение класса, включает и все, что у вас есть, вне ваших методов, а также метод создания.

+2

, который получил его. По какой-то причине мне нужно было изменить имя файла на «friendships_controller.rb» по мере его возникновения как «friendly_controller.rb» по какой-то причине. Мне также пришлось изменить строку «class FriendshipController goddamnyouryan

0

Rails жалуется, потому что вы использовали константу перед ее инициализацией.

puts SomeConstant 
# before 
SomeConstant = 10 

В этом случае константа является класс контроллера Name - FriendshipsController

Проверьте имя класса является правильным, то есть у вас есть контроллер с этим именем в приложении каталога \ контроллера.

0

Я думаю, что вы бежите rails g controller Friendship

в то время как вы должны были использовать rails g controller Friendships

Вот почему все файлы теперь сингулярный Вы все еще можете пройти и изменить все файлы, хотя

Смежные вопросы