fixed author sample data generation and model method
This commit is contained in:
parent
3c6ca3c254
commit
f619c5e389
|
@ -42,6 +42,7 @@ class WritingConference
|
|||
validates :paper_title, :at_least_one => true
|
||||
before_validation :add_http
|
||||
after_save :save_writing_conference_files
|
||||
before_save :update_co_author
|
||||
validates :url, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?/i, :unless => Proc.new{self.url.blank?}
|
||||
|
||||
attr_reader :author_tokens
|
||||
|
@ -52,7 +53,7 @@ class WritingConference
|
|||
ConferenceCoAuthor.find(id).id
|
||||
rescue
|
||||
if id != "0"
|
||||
new_co_author = ConferenceCoAuthor.new(:co_author => id, :name_id => create_user_id)
|
||||
new_co_author = ConferenceCoAuthor.new(:co_author => id)
|
||||
new_co_author.save
|
||||
new_co_author.id
|
||||
else
|
||||
|
@ -63,6 +64,19 @@ class WritingConference
|
|||
self.conference_co_author_ids = authors_ids
|
||||
end
|
||||
|
||||
def update_co_author
|
||||
if new_record?
|
||||
current_user = self.create_user_id
|
||||
else
|
||||
current_user = self.update_user_id
|
||||
end
|
||||
|
||||
self.conference_co_author_ids.each do |id|
|
||||
co_author = ConferenceCoAuthor.find(id)
|
||||
co_author.update_attribute(:name_id, current_user)
|
||||
end
|
||||
end
|
||||
|
||||
def self.search( category_id = nil )
|
||||
if category_id.to_s.size > 0
|
||||
find(:all, :conditions => {writing_conference_category_id: category_id}).desc( :is_top, :title )
|
||||
|
|
|
@ -26,7 +26,7 @@ FactoryGirl.define do
|
|||
"#{data_json[n]["year"]}"
|
||||
end
|
||||
|
||||
f.sequence(:authors) do |n|
|
||||
f.sequence(:author_tokens) do |n|
|
||||
"#{data_json[n]["author"].map{|m| m.split(",").reverse.join(" ")}.join(",")}"
|
||||
end
|
||||
|
||||
|
|
|
@ -37,18 +37,24 @@ class WritingJournal
|
|||
after_save :save_writing_journal_files
|
||||
before_validation :add_http
|
||||
#before_save :save_co_author
|
||||
before_save :update_co_author
|
||||
validates :paper_title, :at_least_one => true
|
||||
validates :url, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?/i, :unless => Proc.new{self.url.blank?}
|
||||
|
||||
attr_reader :author_tokens
|
||||
|
||||
def author_tokens=(ids)
|
||||
if new_record?
|
||||
current_user = create_user_id
|
||||
else
|
||||
current_user = update_user_id
|
||||
end
|
||||
authors_ids = ids.split(",").map{|id|
|
||||
begin
|
||||
JournalCoAuthor.find(id).id
|
||||
rescue
|
||||
if id != "0"
|
||||
new_co_author = JournalCoAuthor.new(:co_author => id, :name_id => create_user_id)
|
||||
new_co_author = JournalCoAuthor.new(:co_author => id)
|
||||
new_co_author.save
|
||||
new_co_author.id
|
||||
else
|
||||
|
@ -58,6 +64,19 @@ class WritingJournal
|
|||
}
|
||||
self.journal_co_author_ids = authors_ids
|
||||
end
|
||||
|
||||
def update_co_author
|
||||
if new_record?
|
||||
current_user = self.create_user_id
|
||||
else
|
||||
current_user = self.update_user_id
|
||||
end
|
||||
|
||||
self.journal_co_author_ids.each do |id|
|
||||
co_author = JournalCoAuthor.find(id)
|
||||
co_author.update_attribute(:name_id, current_user)
|
||||
end
|
||||
end
|
||||
# old method
|
||||
#def save_co_author
|
||||
# authors_list = authors.split(",").map{|n| n.strip.gsub(/\s+/," ")}.reject{|n| n.empty? }
|
||||
|
|
|
@ -30,7 +30,7 @@ FactoryGirl.define do
|
|||
"#{data_json[n]["year"]}"
|
||||
end
|
||||
|
||||
f.sequence(:authors) do |n|
|
||||
f.sequence(:author_tokens) do |n|
|
||||
"#{data_json[n]["author"].map{|m| m.split(",").reverse.join(" ")}.join(",")}"
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue