将boolean列添加到rails数据库可以防止保存消息?

时间:2011-08-14 02:21:06

标签: ruby-on-rails ruby migration boolean

  def create 
    msg = current_user.msgs.build(params[:msg])
    msg.message = msg.message
    msg.created_at = Time.now # HACK
    if msg.save
    else
      flash[:error] = "Your article must contain some text."
    end
    redirect_to root_path
  end

这是我保存邮件的控制器代码,在我尝试rails g migration add_anonymous_to_msg anonymous:booleanrake db:migrate之前它已经运行了现在我收到错误“您的文章必须包含一些文字”这意味着邮件不再存在保存或文本无法识别。我尝试删除列和我的schema.rb说它不再存在,但错误仍然存​​在。

有谁知道可能是什么问题?感谢

3 个答案:

答案 0 :(得分:1)

怎么样:

def create 
  @message = current_user.messages.build(params[:message])
  unless @message.save
    flash[:error] = "Your article must contain some text."
  end
  redirect_to root_path
end

删除空if块的需要。

答案 1 :(得分:0)

我真的认为需要重写你的控制器,它很难读,并且你需要很多代码。尝试这样的事情:

def create 
  @message = Message.new(params[:message])
  if @message.save
  else
    flash[:error] = "Your article must contain some text."
  end
  redirect_to root_path
end

其次,提交表单时,日志中很可能会出现错误消息。你有机会发帖吗?

答案 2 :(得分:0)

你真的需要改变这一行

flash[:error] = "Your article must contain some text."

flash[:error] = msg.errors.full_message

从错误消息中你会知道究竟是什么问题。