我在Devise cancan bootstrap repo。
之上构建了一个rails应用程序我正在尝试为员工创建一个记录小时数的页面。我设置了一个脚手架,它会在脚手架上生成一个带有表单的视图,但我的问题是如何从菜单中链接到该页面,我该怎么做才能将所记录的小时数与所记录的员工相关联英寸
我的脚手架是
rails g scaffold hours email:string day:date hours:integer
答案 0 :(得分:0)
除了用户创建和身份验证外,Devise还添加了以下内容
你想在所有相关的模型中使用foreign_key user_id
而不是电子邮件,你的脚手架生成将是这样的(我已经改变了你的命名,但你明白了)
rails g scaffold TimeSheet user_id:integer day:date hours_worked:integer minutes_worked:integer
然后,您需要更新User
模型和新创建的TimeSheet
模型,以创建两个模型之间的关联
有关详情,请参阅导轨指南: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
# ....