Rails无法更新列值

时间:2017-01-11 08:01:38

标签: mysql ruby-on-rails

我用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中的文本类型。

0 个答案:

没有答案