diff --git a/app/controllers/missions_controller.rb b/app/controllers/missions_controller.rb index 9288316..9a57667 100644 --- a/app/controllers/missions_controller.rb +++ b/app/controllers/missions_controller.rb @@ -106,6 +106,7 @@ class MissionsController < ApplicationController def commentPublish #Todo + puts "I'm in" content = params[:content] mission_id = params[:mission_id] user_id = session[:user_id] diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index ba158bd..b324444 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -4,27 +4,20 @@ class ProjectsController < ApplicationController skip_before_action :verify_authenticity_token, :only => [:index,:create,:addUsers,:detail] #=============================================>获取我的项目列表,user_id保存在session中. - def index #Todo uid = session[:user_id] - #pid = Projects_user.find_by(project_id: uid) - pids = [] - projects = Projects_user.where("user_id = ?",uid).all - projects.each do |projects_user| - pids << projects_user.project_id - end - data = [] - pids.each do |pid| + data=[] + Projects_user.where(:user_id => uid).each do |i| + pid=i.project_id + p=Project.find_by(id:pid) mc = Mission.where(:project_id => pid).size uc = Projects_user.where(:project_id => pid).size sc = Share.where(:project_id => pid).size - puts pid - i = Project.find_by(id: pid) - data += [{ - :id => i.id, - :name => i.name, - :content => i.content, + data+=[{ + :id => pid, + :name => p.name, + :content => p.content, :mission_count => mc, :users_count => uc, :shares_count => sc @@ -46,14 +39,13 @@ class ProjectsController < ApplicationController project = Project.new(params_project) project.users << user project.save - - #project save的时候会保存 projects_users - - # params_pu = {project_id: project.id,user_id: user.id} - # puts params_pu - # pu = Projects_user.new(params_pu) - # pu.save - render :json => {:code => 0} + if project.save + Projects_user.create(project_id:project.id,user_id:uid) + render status: :created, nothing: true + else + render json: project.errors, status: :unprocessable_entity + end + #render :json => {:code => 0} end @@ -115,5 +107,8 @@ class ProjectsController < ApplicationController } } end - + private + def project_params + params.require(:project).permit(:name,:content) + end end \ No newline at end of file diff --git a/app/models/project.rb b/app/models/project.rb index 7adf60b..74f7f30 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1,8 +1,12 @@ class Project < ActiveRecord::Base has_and_belongs_to_many :users +<<<<<<< HEAD validate :require_at_least_on_user,on: :update # 项目中最少要有一个用户 +======= + validate :require_at_least_on_user,on: :update # 项目中最少要有一个用户 +>>>>>>> 27ebee595014926419b6ccba922ad39450b73f6b validates :name, presence: true, length: { minimum: 1, maximum: 50 }, uniqueness: true private diff --git a/db/seeds.rb b/db/seeds.rb index 0625414..c849e66 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -9,9 +9,6 @@ users = [ {:name => '杨诏', :password => '123123123', :email => 'lucio.yang@qq.com', :phone => '15652591529', :created_at => "2016/12/27", :updated_at => "2016/12/27"}, {:name => '陈翊', :password => '123456', :email => '1085730215@qq.com', :phone => '18269771988', :created_at => "2016/12/28", :updated_at => "2016/12/27"} ] -projects = [ - {:id=>'1001',:name => 'AAAA',:content => 'i like helloworld',:mission_count => '20',:users_count => '15',:shares_count => '15'} -] users.each do |user| User.create!(user) diff --git a/public/index.html b/public/index.html index 2f3aeaa..070f9bd 100644 --- a/public/index.html +++ b/public/index.html @@ -174,6 +174,7 @@ type: "get", dataType: "json", url:"/session.json", + async: false, statusCode: { 200: function(data) {// 请求成功 $("#name1").text(data.name); @@ -192,6 +193,9 @@ } }); }); + if(getProjectId()==null){ + window.location="pages/project_select.html"; + } function logout(){ $.ajax({ type: "delete", diff --git a/public/pages/include/main.js b/public/pages/include/main.js index 0666944..4c0ae11 100644 --- a/public/pages/include/main.js +++ b/public/pages/include/main.js @@ -1,7 +1,4 @@ function initCurrent(){ - if(getProjectId()==null){ - window.location="pages/project_select.html"; - } LoginUserInfo={ selectProject:getProjectId(), name:'', diff --git a/public/pages/project_select.html b/public/pages/project_select.html index 56c410a..24fd144 100644 --- a/public/pages/project_select.html +++ b/public/pages/project_select.html @@ -230,22 +230,27 @@ }); }); $("#creat_project").click(function(){ + var pName=$("#exampleName").val(); + var pContent=$("#exampleTextarea").val(); $.ajax({ type:"post", dataType:"json", url:"/projects.json", data:{ - "name":$("#exampleName").val(), - "content":$("#exampleTextarea").val() + "project[name]":pName, + "project[content]":pContent }, statusCode: { - 200: function() {// 请求成功 + 201: function() {// 请求成功 alert("创建成功!"); window.location.reload(); }, 401:function(){// 未授权 alert("未登录!"); window.location.href="login.html"; + }, + 422:function(){ + alert("项目名重复!"); } } }); diff --git a/spec/controllers/missions_controller_spec.rb b/spec/controllers/missions_controller_spec.rb index 0e367f8..94ec07c 100644 --- a/spec/controllers/missions_controller_spec.rb +++ b/spec/controllers/missions_controller_spec.rb @@ -68,7 +68,8 @@ RSpec.describe MissionsController, type: :controller do mission = Mission.new(params_mission) mission.save - post :commentPublish,mission_id: mission.id,content: "用户评论" + post :comments , mission_id: mission.id,content: "用户评论" + puts "hello world" puts response.body end