Я настроил твиттер-подобную модель. Пользователи могут подписаться друг на друга. Я получаю сообщение об ошибке в моем контроллере пользователей при попытке создать отношения.
user.rb:
has_many :subscriptions
has_many :providers, :through => :subscriptions
has_many :followings, :class_name => "Subscription"
has_many :followers, :through => :followings
subscription.rb
belongs_to :provider, :class_name => 'User', :foreign_key => "provider_id"
belongs_to :follower, :class_name => 'User', :foreign_key => "follower_id"
users_controller.rb
69 def follow
70 logger.debug params.to_yaml
71 @user = User.find(params["user_id"])
72 logger.debug @user.to_yaml
73 if current_user.providers << @user
74 flash[:notice] = "Subscribed"
75 else
76 flash[:error] = "Unable to subscribe."
77 end
78 end
Это ошибка при вызове follow:
ActiveRecord::UnknownAttributeError (unknown attribute: user_id):
app/controllers/users_controller.rb:73:in `follow'
Я проверил, что я запускал rake db: migrate - в таблице подписки есть два поля provider_id и follower_id. Может кто-нибудь помочь мне с ошибкой и объяснить, почему он ищет атрибут 'user_id'?
Обновление:
show.html.erb:
<%= button_to "Subscribe", user_follow_path(@user), :remote => true %>
routes.rb:
resources :users do
resources :locations
resources :saved_events
resources :saved_locations
post "follow"
end
рейковые маршруты | grep follow:
user_follow POST /users/:user_id/follow(.:format) {:action=>"follow", :controller=>"users"}