2016-11-07 90 views
0

我的ruby和sinatra應用程序目前允許用戶查看和編輯所有創建的列表,我還沒有弄清楚如何僅向用戶顯示列表創造它們。我如何讓用戶只能查看他們的列表與ruby和sinatra

這裏是我的lists_controller是什麼樣子:

class ListsController < ApplicationController 

get "/lists" do 
    redirect_if_not_logged_in 
    @lists = List.all 
    erb :'lists/index' 
end 

get "/lists/new" do 
    redirect_if_not_logged_in 
    @error_message = params[:error] 
    erb :'lists/new' 
end 

get "/lists/:id/edit" do 
    redirect_if_not_logged_in 
    @error_message = params[:error] 
    @list = List.find(params[:id]) 
    erb :'lists/edit' 
end 

delete '/lists/:id/delete' do 
    @list = List.find_by_id(params[:id]) 
    @list.delete 
    redirect to '/lists' 
end 

post "/lists/:id" do 
    redirect_if_not_logged_in 
    @list = List.find(params[:id]) 
    unless List.valid_params?(params) 
    redirect "/lists/#{@list.id}/edit?error=invalid list" 
    end 
    @list.update(params.select{|a|a=="todo_name"|| a=="todo_list"}) 
    redirect "/lists/#{@list.id}" 
end 

get "/lists/:id" do 
    redirect_if_not_logged_in 
    @list = List.find(params[:id]) 
    erb :'lists/show' 
end 

post "/lists" do 
    redirect_if_not_logged_in 
    unless List.valid_params?(params) 
    redirect "/lists/new?error=invalid list" 
    end 
    List.create(params) 
    redirect "/lists" 
end 
end 

回答

0

問題在於內

@lists = List.all 

在Rails W/ActiveRecord的(假設你的List模型belongs_toUser),你可以代替這樣做

@lists = List.where(user_id: current_user.id) 
+0

我給了th在拍攝時,現在當我創建一個新列表時,該列表不會顯示在我的列表頁面上。 – Chris

+0

是否可以共享List對象的定義方式? – whodini9

相關問題