如何使用日记从Redmine插件添加历史记录
我已更新会议插件。在此插件更新会议时,它不会更新会议历史记录。 像我改变主题会议更新主题,但不更新历史问题。如何使用日记从Redmine插件添加历史记录
我的管理平台的配置如下
Environment:
Redmine version 3.3.1.stable
Ruby version 2.1.5-p273 (2014-11-13) [x86_64-linux]
Rails version 4.2.7.1
Environment development
Database adapter Mysql2
我已经做了以下事项>
我的模型类
def init_journal(user, notes = "")
@current_journal ||= Journal.new(:journalized => self, :user => user, :notes => notes, :notify => false)
if new_record?
@current_journal.notify = false
else
@attributes_before_change = attributes.dup
end
@current_journal
end
def last_journal_id
if new_record?
nil
else
journals.maximum(:id)
end
end
# Returns a scope for journals that have an id greater than journal_id
def journals_after(journal_id)
scope = journals.reorder("#{Journal.table_name}.id ASC")
if journal_id.present?
scope = scope.where("#{Journal.table_name}.id > ?", journal_id.to_i)
end
scope
end
def create_journal
if @current_journal
# attributes changes
if @attributes_before_change
(Meeting.column_names - %w(id created_at updated_at)).each {|c|
before = @attributes_before_change[c]
after = send(c)
next if before == after || (before.blank? && after.blank?)
@current_journal.details << JournalDetail.new(:property => 'attr',
:prop_key => c,
:old_value => before,
:value => after)
}
end
@current_journal.save
# reset current journal
init_journal @current_journal.user, @current_journal.notes
end
end
和控制器类
def update_meeting_from_params
@edit_allowed = User.current.allowed_to?(:edit_meetings, @project)
@time_entry = TimeEntry.new(:meeting => @meeting, :project => @meeting.project)
@time_entry.attributes = params[:time_entry]
@meeting.init_journal(User.current)
meeting_attributes = params[:meeting]
@meeting.safe_attributes = meeting_attributes
end
我得到以下错误。 http://prntscr.com/eb257g 请帮我
你的日记对象(会议)应该有一个叫做journalized_attribute_names
尝试将其添加到您的模型(meeting.rb)方法:
# Returns the names of attributes that are journalized when updating the meeting
def journalized_attribute_names
names = Meeting.column_names - %w(id created_on updated_on)
names
end
是的,它的工作,但我给这样的另一个错误。 未定义的方法'custom_field_values'为# –
http://prntscr.com/ebhaun –
你应该看看“问题”模型,看看这些方法是如何实现的。然后,您只需调整并将其添加到您的自定义模型(会议)。 – Nanego
哪个版本的管理平台? –
它是最新版本。 我用我的环境更新了这个问题。 –
和哪个会议插件? –