У меня есть модель сообщения и модель пользователя. мое сообщение belongs_to
мой пользователь и пользователь has_many
сообщений.Передача значения идентификатора контроллеру, получение сообщения об ошибке массового присвоения
Я пытаюсь разрешить пользователю личное сообщение другого пользователя, находясь на странице их общего профиля (их шаблон отображения). Я пробовал несколько попыток, но в конечном итоге я возвращаюсь к вопросу о том, что ID должен быть attr_accessible
(что я слышал плохо делать). Я делаю что-то неправильно?
Моя модель сообщение, у меня есть :user_id
(который является текущий пользователь, он же sending_from
ID), :to_id
, :content
.
Когда я смотрю на странице профиля пользователя, на шаблоне шоу у меня есть
<%= form_for([current_user, @message]) do |f| %>
<%= f.hidden_field :to_id, :value => @user.id %>
<div class="field">
<%= f.text_area :content, placeholder: "Send a private message..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
В моем пользовательском шоу действий, у меня есть
def show
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(page: params[:page])
if user_signed_in?
@message = current_user.messages.build(params[:messages], to_id: @user.id)
end
end
, когда форма представляет, она идет к моему сообщению создать действие
def create
@message = current_user.messages.build(params[:message])
redirect_to user_path(params[:message][:to_id])
end
Однако, я всегда получаю ошибку
`Can't mass-assign protected attributes: to_id`
Похоже, я могу исправить это, сделав :to_id attr_accessible
, однако я слышал, что это не очень безопасно. Я делаю что-то неправильно? Этот вопрос убивает меня.
Любая помощь будет оценена по достоинству. Thanks
, прежде чем я редактировал это, вам придется иметь дело с некоторыми [Alots] (http://hyperboleandahalf.blogspot.com /2010/04/alot-is-better-than-you-at-everything.html)! –