активная запись использует все переданные поля в new / create - PullRequest
1 голос
/ 27 августа 2011

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

belongs_to :category

и у меня есть category_id в таблице комментариев.

когда пользователь отправляет комментарии в полученных мной параметрах params [: comment] = {"locale" => "en", "body" => "fds", "category_id" => 2, "from_identifier" => 2130706433, "from_type" => "ip", "cookie_user_token "=>" 130784267178572 "," user_id "=> 3}

это именно то, что я хочу. Однако, когда я делаю

Comment.create(params[:comment])

Я получаю

#<Comment id: nil, from_type: "ip", from_identifier: 2130706433, cookie_user_token: 130784267178572, body: "fds", locale: "en", positive_vote_count: 0, adjusted_positive_vote_count: 0.0, negative_vote_count: 0, adjusted_negative_vote_count: 0.0, flag_vote_count: 0, adjusted_flag_vote_count: 0.0, impression_count: 0, visit_count: 0, rank: 137.0, created_at: nil, updated_at: nil, user_id: 3, category_id: nil>

как вы видите, category_id равен nil.

Модель пользователя имеет те же отношения с активной записью, поэтому я не знаю, почему это сохраняется, а category_id - нет.

Прямо сейчас я делаю

comm = Comment.create(params[:comment])
comm.category_id = params[:comment][:category_id]

Есть идеи, почему и что я должен сделать, чтобы избежать взлома?

1 Ответ

2 голосов
/ 27 августа 2011

Использовали ли вы attr_protected или attr_accessible для предотвращения массового присвоения category_id?

Если так, то это проблема.

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