0

Я пытаюсь продолжать идти по пути я привести вниз в этом посте: render show page on submit backbone.js + rails + rails-backbone gemActiveModel :: MassAssignmentSecurity :: Ошибка (Backbone.js + рельсы + рельсы-магистральная камень)

Я до сих пор пытаюсь выяснить, что я описываю в первом абзаце этого вопроса. Я возился в консоли firebug. Когда я нажимаю кнопку «Отправить» с корневой страницы, все работает нормально (кроме того, что приложение не перемещается на страницу создания вновь созданных объектов). URL изменяется на http://localhost:3000/#/x (где x - это идентификатор вновь созданного объекта). Когда я снова нажимаю кнопку «Отправить», я получаю «500 Internal Server Error 22ms». Эта ошибка появляется в консоли> Все окна с маленькой красной стрелкой рядом с ним, что (при нажатии) падает еще один раздел - на с I выберите вкладку «HTML» - и я получаю эту ошибку:

ActiveModel::MassAssignmentSecurity::Error in UsersController#update 

Can't mass-assign protected attributes: created_at, id, updated_at 

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

class UsersController < ApplicationController 
    # GET /users 
    # GET /users.json 
    def index 
    @users = User.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @users } 
    end 
    end 
    ... 
end 

Вот мой дом индекс действия контроллера:

class HomeController < ApplicationController 
    def index 
    @users = User.all 
    end 
end 

так как вы можете видеть, что я думаю, что происходит в том, что, когда я нажимаю представить в первый раз (с домашней страницы) @users получает набор, и приложение переходит на страницу показа новых пользователей (хотя это еще не так - привязывает все это к моему первому вопросу - url изменяется, но содержимое страницы не работает, ссылка для моего первого вопроса выше).

После того, как URL-адрес изменится на URL-адрес страницы-шоу (без загрузки содержимого), я попробовал отправить другую форму пользователя с уникальным вводом, и я получу ошибку массового присваивания выше. Это похоже на то, что @users уже установлен домашним контроллером ... так что, когда он снова вызывается из пользовательского контроллера (после второго представления), его нельзя назначить.

Как бы исправить это? Мне нужен как домашний контроллер, так и пользовательский контроллер, чтобы иметь возможность использовать @users ... Я думаю. И, связывая все до моего первого вопроса здесь: render show page on submit backbone.js + rails + rails-backbone gem

Могу ли я что-то сделать из внутреннего контроллера, который перенаправляет вновь созданного пользователя на страницу показа (возможно, в методе создания или обновления или в пользовательском контроллере или индексный метод домашнего контроллера)? Может ли это решить проблему, с которой я перенаправляюсь на страницу показа с корневой страницы? Весь соответствующий файл backbone.js (и мой файл root index.html.erb) размещен в моем первом вопросе ... пожалуйста, обратитесь к нему, так как он заполнит вас всеми подробностями о чейках, и что я действительно пытаюсь делать.

СПАСИБО!

UPDATE

Здесь действие обновления в моем контроллере пользователей (где ошибка якобы приходит от):

def update 
    @user = User.find(params[:id]) 

    respond_to do |format| 
    if @user.update_attributes(params[:user]) 
     format.html { redirect_to @user, notice: 'User was successfully updated.' } 
     format.json { head :no_content } 
    else 
     format.html { render action: "edit" } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
    end 
end 

ответ

0

Вы не должны посылать created_at и updated_at атрибуты сервера.

Вы должны проверить параметры, которые вы отправляете, и убедиться, что вы их не отправляете.

Кстати, помог ли мой другой ответ?

+0

эй хуан ... Я ценю ваши ответы! Ответ, который вы дали по последнему вопросу, помог мне понять, что я делаю немного лучше ... но это не решило проблему, с которой я не перешел на страницу показа, когда я нажимаю submit на корневой странице ... есть идеи? – ewizard

+0

где я буду отправлять параметры created_at и updated_at? они arent доступные атрибуты в моей модели пользователей ... – ewizard

+0

Я собираюсь добавить обновление моего контроллера контроллера на мой пост ... ошибка, предположительно, происходит оттуда. – ewizard

0

Вы не должны вставить или добавить created_at, идентификатор, updated_at они генерируются автоматически .......

Смежные вопросы