我有一个基于Devise cancan repo。
的应用程序我想要添加的是用户选择一天的方式,记录当天的设定小时数,选择一个项目来平衡这些时间,然后说明他们做了什么。我怎样才能以最简单的方式做到这一点。可能还会使用任何有用的宝石。
答案 0 :(得分:0)
以下是可能让您入门的实际代码和伪代码的混合:
从命令行创建计划和项目资源:
rails g resource log day:date duration:float description:string
rails g resource project title:string
将Log
与User
关联,将Project
与Log
关联:
# app/models/user.rb
class User < ActiveRecord::Base
has_many :logs
# app/models/log.rb
class Log < ActiveRecord::Base
belongs_to :user
has_one :projects
end
# app/models/project.rb
class Project < ActiveRecord::Base
belongs_to :log
end
这应该为您提供一般关联框架以便入门。然后,构建您的视图,以便用一个表单显示用户以创建日志。使用date_select
DateHelper创建日期下拉列表。使用Project.all
上的collection_select
创建所有项目的下拉列表。然后,在你的控制器中,你应该能够做到这样的事情:
# app/controllers/projects_controller.rb
class ProjectsController < ActionController
def create
project = Product.new(params[:project])
if project.save
current_user << project
...
else
...
end
end
end