Обновление не выполняется с моделью пространства имен - PullRequest
0 голосов
/ 01 марта 2012

У меня есть форма обновления в Rails 3 для пользователей-администраторов, которая молча терпит неудачу, несмотря на наличие проверок.Он ранее работал , но когда я переместил все в пространство имен, он больше не сохраняет.

Вот соответствующий код из моего контроллера:

def update
    @admin = Admin::Admin.find(params[:id])

    respond_to do |format|
        if @admin.update_attributes(params[:admin])
            flash[:success] = "'#{@admin.name}' was successfully updated."
            format.html { redirect_to admin_admins_path }
        else
            format.html { render action: "edit" }
        end
    end
end

Имодель (незавершенная, но ранее работавшая):

class Admin::Admin < ActiveRecord::Base
    validates :name,   :presence=>{:message=>"Name can't be blank"}
    validates :email,   :presence=>{:message=>"Email can't be blank"},
        :length => {:minimum => 3, :maximum => 254, :message=>"Email must be between 3 and 254 characters"},
        :uniqueness=>{:message=>"Email has already been registered"},
        :format=>{:with=>/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message=>"Email must be a valid email format"}
    validates :password,   :presence=>{:message=>"Password can't be blank"}
end

И первая часть формы частично:

<%= form_for(@admin) do |f| %>

Все загружается правильно, но когда я пытаюсь сохранить, мои проверкиигнорируются, и он перенаправляет на страницу индекса с сообщением об успехе, но без сохранения данных.У меня такое ощущение, что мне не хватает чего-то общего с пространствами имен, но я не совсем уверен, в чем проблема.Может ли он искать модель в каталоге базовой модели?

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Вы проверяли параметры? Я мог представить, что params[:admin] больше не содержит значений форм.

0 голосов
/ 01 марта 2012

Итак, мы с VirtuosiMedia прошли через него, и RoR добавляет «admin_» для представления пространства имен Admin ::, поэтому нам пришлось искать параметры [: admin_admin].

...