我用mysql数据库创建了Rails(3.2版)应用程序。我有表消息与列内容。我可以使用rails console更新以下数据,但我不能使用来自seeds.rb的相同代码。
数据:"加入****音频/视频会议。这是****的在线会议,社区市场在您的社区寻找产品和服务。 HTTP://*****.dev:3000 /会议/ 80"
我在seeds.rb文件中有以下代码
all_messages = Message.all
all_messages.each do |message|
message_content = message.content
if message_content.present? && message_content[/\/(.*)\/(.*)\/conferences/,2].present?
message_content.slice! (message_content[/\/(.*)\/(.*)\/conferences/,2]+'/')
if message.update_attributes!(content: message_content)
puts message.content
else
puts "nothing"
end
end
end
它不会显示任何错误,但数据不会在db中更新,也不会显示任何错误。
这是我的模型文件
class Message < ActiveRecord::Base
attr_accessible :content
after_save :update_conversation_read_status
belongs_to :sender, :class_name => "Person"
belongs_to :conversation
has_one :request
validates_presence_of :sender_id
validates_presence_of :content
def update_conversation_read_status
conversation.update_attribute(:last_message_at, created_at)
conversation.participations.each do |p|
last_at = p.person.eql?(sender) ? :last_sent_at : :last_received_at
p.update_attributes({ :is_read => p.person.eql?(sender), last_at => created_at})
end
end
end
注意:内容是db中的文本类型。