2017-04-26 10 views
1

私は1つのビューに2つのアクションを表示しようとしています。私は、ユーザーにこれら二つのアクションを指すようにしようとしていますRuby on Rails:同じビューで2つのアクション

routes.rbを

resources :users do 
get "accepted", to: "users#accepted" 

users_controller.rb

def show 
@user = User.find(params[:id]) 
@requests = @user.requests 
end 

def accepted 
@user = User.find(params[:id]) 
@requests = Request.where(:driverid => @user.id).order("created_at DESC") 
end 

は、ページを表示します。

私は部分的に遊んでいて、同様の質問を見ていますが、それを理解できません。どんな助けもありがとう!

EDIT

私は以下のshowアクションになりたいshow.html.haml

%h2 Current requests: 
- @user.requests.where(:accepted => 'f').each do |request| 
    etc 

そして、受け入れアクション:

- @requests.where(blah blah).each do |request| 
    etc 

答えて

1

Rails documentationから:

def accepted 
    @user = User.find(params[:id]) 
    @requests = Request.where(:driverid => @user.id).order("created_at DESC") 
    render :show 
end 

EDIT:コントローラーのshowアクションで

@requests = @user.requests.where(:accepted => 'f') 

、ショービューで:助けを

%h2 Current requests: 
- @requests.each do |request| 
    # ... 
+0

感謝。ビューページに2セットのデータをどのように表示するのですか?私は何を意味するのかを説明するために質問を更新しました。 – BigL

+0

私は自分の答えを更新しました。うまくいけばそれがあなたが必要としていることですが、要件が実際より複雑であれば、完全な状況をより完全に説明するために質問を書き直してください。 –

関連する問題