Im работает в небольшой (новичок) проблема.комментарии не сохраняются post_id
У меня есть 2 модели: вопрос & отзывов.
Отзывы схемы: question_id, user_id, рейтинг, комментарии
На представлении 'шоу', я уже интегрировали следующий вид (formtastic): создать действие
- semantic_form_for @question.reviews.build do |f|
= f.error_messages
= f.input :rating
= f.input :comments
= f.buttons
Мои обзоры контроллера выглядит это:
def create
@review = Review.new(params[:review])
@review.user_id = current_user.id
if @review.save
flash[:notice] = "Successfully created review."
redirect_to(@review.question)
else
redirect_to(@review.question)
end
end
Однако теперь он просто не сохраняет идентификатор вопроса в поле question_id. Он действительно сохраняет user_id.
У кого-нибудь есть ключ к тому, что я делаю неправильно? Если вам нужны журналы, дайте мне знать! Заранее спасибо
thx, я понял, что это может быть решение да. Но, может ли пользователь просто изменить значение поля, чтобы он менял значение другого вопроса? Я думал, что добавление его в контроллер будет безопаснее? Или это не фактор? THX снова! –
Вы правы, что вам не следует доверять никому, что вы не хотите, чтобы потенциально измененный пользователем скрытые поля. Вы должны всегда делать какие-либо проверки прав, чтобы убедиться, что пользователь может делать то, что они пытаются сделать. В идеале эта ответственность инкапсулируется в модуль авторизации (то есть cancan), а не пытается принудительно выполнить ее в действии контроллера. Принимая во внимание, что вы должны либо иметь перед фильтром, который освобождается, если у них нет разрешений * или * @ review.save должны не работать, если у них нет разрешений. – semanticart