绑定铁路帐户到脚手架

时间:2013-06-12 14:27:15

标签: ruby-on-rails ruby devise cancan

我在Devise cancan bootstrap repo。

之上构建了一个rails应用程序

我正在尝试为员工创建一个记录小时数的页面。我设置了一个脚手架,它会在脚手架上生成一个带有表单的视图,但我的问题是如何从菜单中链接到该页面,我该怎么做才能将所记录的小时数与所记录的员工相关联英寸

我的脚手架是

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

1 个答案:

答案 0 :(得分:0)

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

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

你想在所有相关的模型中使用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,并在createupdate操作期间将其设置在控制器中

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

  # ....