У меня есть две модели с именем Post и PostComment. В настоящее время я использую hidden_field
форму хелперы для отправки дополнительных данных, как послеоперационное время, идентификатор пользователя комментария плакатом и пост ID, на котором комментарий делается так:Rails передает дополнительные параметры запросу без использования тега hidden_field
<%= f.hidden_field :posttime, value: Time.now.getutc %>
<%= f.hidden_field :post_id, value: @post.id %>
<%= f.hidden_field :user_id, value: current_user.id %>
Он щелкнул поздно мне, что Я могу изменить эти значения с помощью инспекторов браузера и, следовательно, это нарушение безопасности. Итак, как я могу безопасно отправлять эти параметры?
Спасибо за расчистки многих вещи для меня. Я не знал, что параметр post_id автоматически передается, теперь это имеет смысл. Поскольку я использую devise, это не должно быть '@post_comment.user_id = current_user.id' (подразумевая, что ваша строка кода неверна или, по крайней мере, не соответствует соглашению) –
Пока у вас есть пользователь' own_to: user 'в модели' Comment', вы можете использовать 'user' или' user_id', и они будут как Just Work :) Если у вас есть валидация на том или ином, то - используйте тот, у кого есть валидация ... (например 'validates_presence_of: user_id' означает, что вы должны предпочесть '@comment.user_id = current_user.id') –
Отлично! Поскольку мы регистрируем идентификатор пользователя в самом контроллере, и я убедился, что форма видна пользователю только в том случае, если он зарегистрирован, нет права на правильность 'validates_presence_of: user_id'? –