Почему постоянно выходит rollback?

И еще раз здравствуй, Хабр!
Сразу к делу. Есть экшн, который сохраняет или изменяет объект.
вот он, собственно
def edit
       navigation_params = get_navigation_params 
       puts params_id    
       if params_id.present?
	  item = Navigation.find_by_id(params_id)
	     if item 	   
		item.update(navigation_params)
	    end
       else
	    item = Navigation.new(navigation_params)
            item.save
        end
	redirect_to controller: "routes", action: "main"
    end
private
   def params_id
		params[:navigation][:id]
   end
   def get_navigation_params
		params.require(:navigation).permit(:name, :url, :sort_id, :drop_down, :parent_id)
   end 
end


Вот схема модели Navigation, который должна создаться/обновиться
create_table "navigations", force: true do |t|
    t.string   "name"
    t.string   "url"
    t.integer  "sort_id"
    t.boolean  "drop_down"
    t.integer  "parent_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

и модель
class Navigation < ActiveRecord::Base
	validates :name, :sort_id, absence: true
end


Вот что говорит консоль:
Started POST "/navigation" for 127.0.0.1 at 2014-05-01 22:05:08 +0400
Processing by NavigationController#edit as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"aRyvGIMgPYOlzSrfmFyJewWc2ggs167kElGEiE9+87A=", "navigation"=>{"id"=>"", "name"=>"new item", "drop_down"=>"1", "url"=>"/url/", "sort_id"=>"1", "parent_id"=>""}, "commit"=>"Изменить"}
Unpermitted parameters: id

   (0.2ms)  BEGIN
  (0.2ms)  ROLLBACK
Redirected to http://0.0.0.0:3000/
Completed 302 Found in 14ms (ActiveRecord: 2.9ms)
  • Вопрос задан
  • 2542 просмотра
Решения вопроса 1
@Finist
почитайте про absence валидатор
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы