0

我有一个基于Devise cancan bootstrap repo 构建的 rails 应用程序。

我正在尝试为员工创建一个记录小时数的页面。我设置了一个脚手架,并在该脚手架上生成了一个带有表单的视图,但我的问题是如何从菜单链接到该页面,以及如何使这些记录的时间与记录的任何员工相关联在。

我的脚手架是

rails g scaffold hours email:string day:date hours:integer
4

1 回答 1

0

因此,除了用户创建和身份验证之外,Devise 添加了以下内容

  • 用户模型(由数据库中的用户表支持)
  • current_user 方法在您的控制器代码和您的视图中可用

您想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 并在createupdate操作期间将其设置在控制器中

def create
  @time_sheet = TimeSheet.new(params[:time_sheet])
  @time_sheet.user = current_user

  # ....
于 2013-06-12T14:58:19.487 回答