diff --git a/ReadMe.txt b/ReadMe.txt index 0fcba47c0..c357bbad4 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -50,4 +50,8 @@ app\controller\welcome_controller.rb 0606:新坑 user_scores表结构有问题,需要运行 bundle exec rake db:migrate:down VERSION=20140410021724 -bundle exec rake db:migrate:up VERSION=20140410021724 \ No newline at end of file +bundle exec rake db:migrate:up VERSION=20140410021724 + +================================================================================ +0626:新坑 journal_replies 无法删除问题 +journal_replies表没有主键,在对User调用destroy方法时候,rails默认调用查找id删除的方法,journal_replies没有id字段,导致删除失败 \ No newline at end of file diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index 9c39c526b..44b3c7b41 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -893,8 +893,9 @@ class BidsController < ApplicationController def memberAccess # 是课程,则判断当前用户是否参加了课程 + return true unless @bid.reward_type.eql?(Bid::Homework) return true if current_user.admin? - return 0 if @bid.courses.first.project_type == Project::ProjectType_project + return 0 if @bid.courses.first.try(:project_type) == Project::ProjectType_project currentUser = User.current render_403 unless currentUser.member_of?(@bid.courses.first) end diff --git a/app/models/user.rb b/app/models/user.rb index ba996fe87..c9469298e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -98,7 +98,7 @@ class User < Principal has_many :softapplications, :foreign_key => 'user_id', :dependent => :destroy has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :new_jours, :as => :jour, :class_name => 'JournalsForMessage', :conditions => "status=1" - has_many :journal_replies, :dependent => :destroy + has_many :journal_replies has_many :activities, :dependent => :destroy has_many :students_for_courses has_many :courses, :through => :students_for_courses, :source => :project @@ -208,62 +208,13 @@ class User < Principal # ====================================================================== - # 集中处理 User 扩展表为空的问题 - # 合并 user_score 属性 - validate :valid_user_extensions - after_save :save_user_extensions - def extensions - self.user_extensions ||= UserExtensions.new + self.user_extensions ||= self.build_user_extensions end def user_score_attr - self.user_score ||= UserScore.new - end - - alias_method :ori_respond_to?, :respond_to? - def respond_to?(m, include_private = false) - flag = false - flag = ori_respond_to? m.to_sym unless flag - flag = UserExtensions.new.respond_to? m.to_sym unless flag - flag = UserScore.new.respond_to? m.to_sym unless flag - - flag - end - - def method_missing m, *args, &block - if extensions.respond_to? m.to_sym - self.class.send(:define_method, "_meta_#{m}".to_sym) do |*args, &block| - self.extensions.__send__ m.to_sym, *args - end - __send__ "_meta_#{m}".to_sym, *args, &block - - elsif user_score_attr.respond_to? m.to_sym - self.class.send(:define_method, "_meta_#{m}".to_sym) do |*args, &block| - self.user_score_attr.__send__ m.to_sym, *args - end - __send__ "_meta_#{m}".to_sym, *args, &block - - else - super - end - end - - def valid_user_extensions - if !self.extensions.valid? - self.extensions.errors.messages.each do |key, values| - values.each do |value| - self.errors.add key, value - end - end - end - end - - def save_user_extensions - self.extensions.save - self.user_score_attr.save + self.user_score ||= self.build_user_score end - # 集中处理 User 扩展表为空的问题 < end # ====================================================================== #选择项目成员时显示的用户信息文字 diff --git a/app/views/layouts/_base_footer.html.erb b/app/views/layouts/_base_footer.html.erb index fd8b6bbbd..b56a165f3 100644 --- a/app/views/layouts/_base_footer.html.erb +++ b/app/views/layouts/_base_footer.html.erb @@ -1,31 +1,18 @@