Я пытаюсь продолжать идти по пути я привести вниз в этом посте: 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
эй хуан ... Я ценю ваши ответы! Ответ, который вы дали по последнему вопросу, помог мне понять, что я делаю немного лучше ... но это не решило проблему, с которой я не перешел на страницу показа, когда я нажимаю submit на корневой странице ... есть идеи? – ewizard
где я буду отправлять параметры created_at и updated_at? они arent доступные атрибуты в моей модели пользователей ... – ewizard
Я собираюсь добавить обновление моего контроллера контроллера на мой пост ... ошибка, предположительно, происходит оттуда. – ewizard