我是rails的新手,我有一个允许用户登录并为项目创建截止日期的应用程序,我的问题是使用assign,我想设置它,所以当创建一个新的截止日期时,我将它分配给用户id。我在我的新方法和创建方法中尝试了以下几种方法:
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>犯了错误
发布于 2014-03-21 02:21:12
是的,需要将user_id列添加到截止日期表中。
在终端中,导航到Rails应用程序并键入:
rails generate migration add_user_id_to_deadlines user_id:integer
这将自动创建在截止日期表中包含user_id列的迁移。然后,您可以再次迁移数据库以添加最新的更改:
rake db:migrate
还修改deadline.rb以包括belongs_to :user和user.rb以包含has_many :deadlines
https://stackoverflow.com/questions/22548637
复制相似问题