Я внедряю функцию «Избранное» в приложение блога сообщества и хотел бы использовать Ajax.
Когда пользователям нравится публикация на главной странице, есть символ «+», который они могут щелкнуть, чтобы добавить это сообщение в свою коллекцию избранных.
Эта функция прекрасно работает без функции Ajax. Но сейчас я добавляю Ajax.
По виду:
<span id="favorite_<%= entry.id %>">
<%= link_to_remote "+", :url => { :action => 'add_favorite' },
:entry => entry.id,
:user => session[:user_id],
:update => 'favorite_' + entry.id.to_s %>
</span>
Соответствующее действие контроллера:
def add_favorite
@favorite = Favorite.new(:entry_id => :entry, :user_id => :user)
if @favorite.save
render :text => "added to favorites", :layout => false
end
end
Текст отображается соответствующим образом в представлении, как будто действие сработало. Но когда я проверяю список избранного, он не был добавлен.
Я провел линию
@favorite = Favorite.new(:entry_id => :entry, :user_id => :user)
в интерактивной оболочке и все было хорошо. Все сохранено.
Что я пропускаю / делаю неправильно?