私はruby/railsの新機能ですが、私はacts_as_votable gemが提供するコメントを使用する3つのリソースを持っています。問題は、すべてのリソースに必要な方法とルートを追加して、完全な非乾燥収差が生じることです。Railsで繰り返される方法と経路
私のルートは以下のとおりです。コントローラーで
Rails.application.routes.draw do
root to: 'home#index'
get 'home/index', to: 'home#index'
resources :users
get 'thinga/tagged/:tag', to: 'thinga#tags', as: 'tagged_thingas'
get 'thingb/tagged/:tag', to: 'thingb#tags', as: 'tagged_thingbs'
resources :thinga do
member do
get :like
get :dislike
get :unvote
end
end
resources :thingb do
member do
get :like
get :dislike
get :unvote
end
end
resources :thingc, only: [:create, :update, :destroy] do
member do
get :like
get :dislike
get :unvote
end
end
devise_for :users, path: 'auth',
:controllers => { :omniauth_callbacks => 'omniauth_callbacks' }
end
繰り返しコードが
def like
@thinga = Thinga.find(params[:id])
@thinga.liked_by current_user
respond_to do |format|
format.html { redirect_to :back }
format.js { render layout: false }
end
end
def dislike
@thinga = Thinga.find(params[:id])
@thinga.disliked_by current_user
respond_to do |format|
format.html { redirect_to :back }
format.js { render layout: false }
end
end
def unvote
@thinga = Thinga.find(params[:id])
@thinga.unvote_by current_user
respond_to do |format|
format.html { redirect_to :back }
format.js { render layout: false }
end
end
ある誰かが、この例をしてくださいオフに乾燥する方法を学ぶために私を助けることができます?。ありがとうございました。
ならびにコントローラメソッドのDRY解決策を提供することができます。私はおそらく、これを処理するためのモジュールを用意しています。 – engineersmnky