そこで、プロジェクトなどを表示できるRailsアプリを構築しています。プロジェクトコントローラーに次のコードがあります。
def create
@project = Project.create(params[:project].merge(:user_id => current_user.id))
if @project.save
redirect_to project_path(@project), :flash => {:success => 'We have created your project'}
else
redirect_to :back, :flash => {:error => 'Cannot allow an empty project name'}
end
end
これにより、私が理解していることから、ユーザーのIDに基づいて、ユーザーのIDに関連するプロジェクトが、次のモデルで作成されます。
class Project < ActiveRecord::Base
attr_accessible :project_title, :user_id
has_many :categories, :order => 'position', :dependent => :destroy
has_many :tasks, :dependent => :destroy
has_many :discussions, :dependent => :destroy
has_many :users
belongs_to :user
validates :project_title, :presence => true
end
更新:ユーザーのプロジェクトを表示するためのユーザーコントローラーの表示アクション
def show
@user = current_user
@projects = current_user.projects.all
@tasks = current_user.tasks.all
@categories = current_user.categories.all
@discussions = current_user.discussions.all
end
*プロジェクトコントローラーのインデックスアクションを表示するように更新されました*
def index
@project = Project.new
@projects = Project.all
end
そのことを念頭に置いて、なぜユーザーbobにプロジェクトを作成させ、ログアウトさせ、ユーザーjakeにログインしてユーザーbobsプロジェクトを表示させることができるのか疑問に思っています...
作成時に何か間違ったことをしていますか?必要に応じてさらに多くのコードを表示できますが、これが最も役立つと思いました。