Rails 3 - voice_fu - запрос избирателя на голосование - PullRequest
0 голосов
/ 08 марта 2011

Я пытаюсь запросить определенный голос в плагине voice_fu, чтобы я мог его уничтожить.Мне нужно сделать это, так как я внедрил политику «один голос на пользователя», но я бы хотел, чтобы пользователь мог удалять голоса.

Итак, у меня есть модель Link, которая имеет право голоса иПользователь как избиратель.Теоретически, я не должен быть в состоянии сделать что-то вроде:

@link.votes.find_by_user_id(current_user.id).destroy

Хотя голосование не является методом поддержки, потому что это не таблица, которую я построил в БД.Я прочитал документацию voice_fu и, похоже, не могу найти / или выяснить, как я должен уничтожать голоса.

def destroy
      @vote = Vote.find(params[:id])
      @vote.destroy

      respond_to do |format|
        format.html { redirect_to(user_votes_url) }
        format.xml  { head :ok }
      end
    end

В библиотеке voice_fu, поэтому я смогвызовите уничтожение при голосовании, мне просто нужно найти голос.

В любом случае, спасибо за помощь.

1 Ответ

1 голос
/ 08 марта 2011

Я поступил об этом неправильно. Мой окончательный код выглядит следующим образом:

def unvote
    @link = Link.find(params[:id])
    @vote = current_user.votes.find_by_voteable_id(@link.id)
    @vote.destroy
    redirect_to :back
  end

Тогда, на мой взгляд:

<%= link_to "Delete Vote", unvote_topic_link_path(@topic, link), :method => :delete %>

и мой маршрут, если вам нужна полная картина всего происходящего:

resources :links do
      member do
        post 'vote'
        delete 'unvote'
...