我有一个基于Devise cancan bootstrap repo 构建的 rails 应用程序。
我正在尝试为员工创建一个记录小时数的页面。我设置了一个脚手架,并在该脚手架上生成了一个带有表单的视图,但我的问题是如何从菜单链接到该页面,以及如何使这些记录的时间与记录的任何员工相关联在。
我的脚手架是
rails g scaffold hours email:string day:date hours:integer
我有一个基于Devise cancan bootstrap repo 构建的 rails 应用程序。
我正在尝试为员工创建一个记录小时数的页面。我设置了一个脚手架,并在该脚手架上生成了一个带有表单的视图,但我的问题是如何从菜单链接到该页面,以及如何使这些记录的时间与记录的任何员工相关联在。
我的脚手架是
rails g scaffold hours email:string day:date hours:integer
因此,除了用户创建和身份验证之外,Devise 添加了以下内容
您想user_id
在所有相关模型中使用 foreign_key 而不是电子邮件,您的脚手架生成将是这样的(我已经稍微更改了您的命名,但您明白了)
rails g scaffold TimeSheet user_id:integer day:date hours_worked:integer minutes_worked:integer
然后您需要更新您的User
模型和新创建TimeSheet
的模型以创建两个模型之间的关联
有关更多信息,请参阅 rails 指南:http: //guides.rubyonrails.org/association_basics.html
class User
# ...
has_many :time_sheets
end
class TimeSheet
belongs_to :user
end
您需要从脚手架生成的视图中删除 user_id 并在create
和update
操作期间将其设置在控制器中
def create
@time_sheet = TimeSheet.new(params[:time_sheet])
@time_sheet.user = current_user
# ....