2016-04-11 25 views
1

ユーザーでアプリを作成しています。私のUsersControllerにはshowメソッドがあります。したがって、id = 1のユーザーには、/users/1でアクセスできます。Rails:コントローラにアクションを追加する

私のroutes.rbファイルには、:usersというリソースが含まれています。したがって、/users/1/editは、id = 1というユーザーのためにeditページをレンダリングします。

私が達成しようとしているのは、/users/USER_ID/requestに到達して任意のユーザーにリクエストを送信できる新しいアクションを作成することです。

どうすればよいですか?事前にヘルプを評価してください!

答えて

1

まず、以下のr OUTE(routes.rb):

get '/users/:id/request' => 'users#request', as: :user_request 

第二に、UsersControllerrequestメソッドを追加します。

def request 
    @user = User.find params[:id] 
    # do your thing 
end 

あなたがそうのようなあなたの意見では、このURLへのリンクを作成することができます。<%= link_to 'Request', user_request_path(@user.id) %>

+0

は、これはそれを解決しました。どうもありがとう! –

+0

私の答えに合格とフラグを付けることができますか?これにより、同様の問題を抱える人が簡単に解決策を見つけることが容易になります。 –

0

"コントローラー内のコントローラー"の意味が不明です。上記のリクエストはブロックをresourcesルートに渡すことで可能になります。

requestは、アクションコントローラで一般的に使用される方法であるため、しかし、それはアクション名として "要求" を使用することは非常に危険だ。

routes.rbを

resources :users do 
    put :process_request, on: :member 
end 

ユーザーコントローラ:

def process_request 
    # ... 
end 
関連する問題