RuntimeError: неожиданно усеченные данные Ошибка Rails 3.1 - PullRequest
2 голосов
/ 21 февраля 2012

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

RuntimeError: unexpectedly data truncated:SELECT  `courses`.* FROM `courses`  WHERE `courses`.`id` = ? LIMIT 1

Редактировать и показывать действия моего контроллера

def edit
...
@course = Course.find(params[:id])
@title = "#{@course.name}'s Details"
...
end

def show
...
@title = "Course Detail"
@course = Course.find(params[:id])
...
end

А вид

 <%= form_for @course do |f|%>
      <%= render 'form' ,:f => f%>
      <%= f.submit :class=> "btn " %>
      <%= link_to "Delete User" , @course, :method =>:delete,:confirm =>"You Sure?",
                  :title => "Delete #{@course.email}",:class => "btn " %>
      <%= link_to 'Cancel', courses_path,:class => "btn" %>
 <% end %>

Понятия не имею относительно источника ошибки

EDIT

create_table "courses", :force => true do |t|
t.string   "date"
t.string   "time"
t.string   "venue"
t.integer  "roomnumber"
t.string   "tutor"
t.string   "type"
t.string   "name"
t.string   "description"
t.string   "status"
t.string   "duration"
t.integer  "maxallowed"
t.datetime "created_at"
t.datetime "updated_at"
end

1 Ответ

0 голосов
/ 21 февраля 2012

Это исходит от вашего драйвера Mysql, потому что данные, которые вы пытаетесь установить в одном из ваших столбцов, длиннее 255 символов (по умолчанию для t.string). Вам нужно усечь данные самостоятельно перед сохранением или изменить тип столбца на текст, объявив его как t.text. Делайте это только для полей, которые должны быть длинными, поскольку поля больших двоичных объектов могут стать дорогими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...