Nilay,

What's the status of your effort here?  

Liz

On Monday, August 10, 2015 at 3:36:52 PM UTC-4, nilay singh wrote:
>
> I am trying to create a like and dislike function inside rails for that I 
> am using lin_to helper to pass params but there is an issue when ever 
> someone tries to copy paste the links it updated the database . I am using 
> ajax to make this function work here is the code for my method .
>
> Controller code :
>
>  class FeedLikesController < ApplicationController
>             before_action :authenticate_user! ,only: [:create, :destroy]
>              before_action :get_feed ,only: [:create, :destroy]
>
>
>               def index
>                 @fees = FeedLike.all
>                 respond_to do |format|
>
>                         format.html 
>                         format.js
>
>
>              end
>               end
>              def update
>                 @feed_likes = FeedLike.find_or_create_by(feed_like_params)
>                     respond_to do |format|
>                         if @feed_likes.save
>                         format.html { redirect_to root_url, notice: 'Like ' }
>
>                         else
>
>                         end
>                    end
>             end
>               def create
>                     @feed_like_counter= Feed.find(params[:feed_id])
>                     @feed_likes = FeedLike.find_or_create_by(:feed_id => 
> params[:feed_id],:user_id =>params[:user_id])
>                      @f = @feed_like_counter.like_count
>                      @feed_like_counter.like_count = @f+1
>                      @feed_like_counter.save
>                     respond_to do |format|
>                         if @feed_likes.save 
>                         format.html { redirect_to root_url, notice: 'Like ' }
>                         format.js
>                         else
>
>                         end
>                    end
>               end
>
>
>               def delete
>
>               end
>
>               def destroy
>                   @feed_like_counter= Feed.find(params[:feed_id])
>                   @feed_likes = FeedLike.where(feed_like_params)
>                   @f = @feed_like_counter.like_count
>                   @feed_like_counter.like_count = @f-1
>                   @feed_like_counter.save
>                   respond_to do |format|
>                        if @feed_likes.destroy_all
>                        format.html { redirect_to root_url, notice: 'Unlike ' }
>                        format.js
>                        else
>
>                        end
>                    end
>               end
>               def feed_like_params
>                   params.permit(:user_id, :feed_id)
>                   #params[:market_place]
>                 end
>             def get_feed
>               @feed= Feed.find(params[:feed_id])
>             end
>
>               end
>
> And in views my link is like this :
>
>   <div class="feed-like-<%= @feed %> " >
>
>               <%= link_to "like",{ :action => 'create', :controller => 
> 'feed_likes', :feed_id => @feed, :user_id => current_user.id, :remote => true 
> }, method: :post,class: "btn btn-primary"   %>
>
>                   </div>
>
> And dislike link is like this :
>
>         <div class="feed-like-<%= @feed %> " >
>              <%= link_to "Dislike",{ :action => 'destroy', :controller => 
> 'feed_likes', :feed_id => @feed, :user_id => current_user.id, :remote => true 
> }, class: "btn btn-primary" %>
>
>               </div>
>
> And my routes is like :
>
>    get "/feed_likes/:feed_id/feed_likes/:user_id" => "feed_likes#destroy"
>       post "/feed_likes/:feed_id/feed_likes/:user_id" => "feed_likes#create"
>
> Here the issue is whenever someone wants to like the feed when I passes 
> the url direclty it updated the database how can I restrict this only when 
> user click the button only then it update the database not by url :
>
> There is another issue with this I am using ajax onclick event it updated 
> the database but when I click the like button fast it update the databse 2 
> or 3 times before the dislike partial appear . Is there any way I can use 
> this .
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/df9d2950-e532-4104-b7a5-5b2d65956716%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to