現在TwitterライクなwebアプリケーションをRails 5.0.0で開発しています。
Like機能の実装に取り掛かっているのですが、
ajaxを使ってcounter_cacheを更新させようとすると、
思った通りに動かないのでこちらで質問させて頂きます。
###該当のソースコード
like.rb class Like < ApplicationRecord belongs_to :user belongs_to :tweet, counter_cache: :likes_count end --------------------------------------------- tweet.rb ... ... def liked?(user) likes.find_by(user_id: user) end --------------------------------------------- likes_controller.rb def create @tweet = Tweet.find(params[:tweet_id]) @like = Like.create(user_id: current_user.id, tweet_id: params[:tweet_id]) respond_to do |format| format.js end end def destroy @like = current_user.likes.find_by(tweet_id: params[:tweet_id]) @like.destroy end ------------------------------------------------ _tweet.html.haml ... ... %span{:id => "like-tweet-#{tweet.id}"} = render 'likes/like_button', tweet: tweet %span#likes-count = tweet.likes_count ------------------------------------------------ create.js.haml & destroy.js.haml $('#like-tweet-#{@like.tweet.id}').html("#{j render 'likes/like_button', tweet: @like.tweet, like: @like}"); $('#likes-count').html("#{@tweet.likes_count}"); ----------------------------------------------- routes.rb resources :tweets, only: [:create, :destroy] do resource :likes, only: [:create, :destroy] end
like_buttonはajaxを使って切り替えることが出来たのですが、
次のステップとしてlikes_countをajaxを使って切り替えようとしたら詰まってしまいました。
私はどのようなコードを書けば、望んでいることが出来るでしょうか?
回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。