Добавление логического столбца в базу данных rails предотвращает сохранение сообщений? - PullRequest
0 голосов
/ 14 августа 2011
  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:boolean и rake db:migrate Теперь я получаю сообщение об ошибке «Ваша статья должна содержать некоторый текст», что означает, что сообщения больше не сохраняютсяили текст не распознается.Я попытался удалить столбец, и мой schema.rb говорит, что он больше не существует, но ошибка все еще сохраняется.

Кто-нибудь знает, в чем может быть проблема?Спасибо

Ответы [ 3 ]

1 голос
/ 14 августа 2011

Как насчет:

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.

0 голосов
/ 14 августа 2011

вам действительно нужно изменить эту строку

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

до

flash[:error] = msg.errors.full_message

из сообщения об ошибке вы узнаете, что именно знаете, в чем проблема.

0 голосов
/ 14 августа 2011

Я действительно думаю, что требуется переписать ваш контроллер, его трудно прочитать, и есть много кода, который вам не нужен.Попробуйте что-то вроде этого:

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

Во-вторых, при отправке формы, скорее всего, в ваших журналах появляется сообщение об ошибке.Есть ли шанс, что вы могли бы опубликовать это?

...