如何将项目分配给rails中的用户ID?

时间:2014-03-21 01:39:26

标签: ruby-on-rails devise

对rails很新,我有一个允许用户登录并为项目创建截止日期的应用程序,我的问题是使用设计,我想设置它,以便在创建新的截止日期时将其分配给用户ID。我在我的new和create方法中尝试了以下内容:

class DeadlinesController < ApplicationController

def new
    @deadline = current_user.deadlines.new
end

def create
    @deadline = current_user.deadlines.new(params[:deadline].permit(:title, :date, :description))
    if @deadline.save
        redirect_to @deadline
    else
        render 'new'
    end
end

def show
    @deadline = Deadline.find(params[:id])
end

def edit
    @deadline = Deadline.find(params[:id])
end

def index
    @deadlines = Deadline.all
    @deadlines = Deadline.paginate(:page => params[:page], :per_page => 5)
end

def update
    @deadline = Deadline.find(params[:id])

    if @deadline.update(params[:deadline].permit(:title, :date, :description))
        redirect_to @deadline
    else
        render 'edit'
    end
end

def destroy
    @deadline = Deadline.find(params[:id])
    @deadline.destroy

    redirect_to deadlines_path

end

private
def post_params
    params.require(:deadline).permit(:title, :date, :description)
end

 end

当我尝试@deadline = current_user.deadlines.new时,我误以为undefined method deadlines' for #<User:0x007fa37b6127d8>

1 个答案:

答案 0 :(得分:2)

是的,您需要将user_id列添加到截止日期表。

在终端中,导航到您的Rails应用并输入:

rails generate migration add_user_id_to_deadlines user_id:integer

这将自动创建一个在截止日期表中包含user_id列的迁移。然后,您可以再次迁移数据库以添加最新更改:

rake db:migrate

同时修改截止日期.rb以包含belongs_to :user和user.rb以包含has_many :deadlines