им пытаются создать простую систему личных сообщенийрельсов, как извлечь: идентификатор атрибут в контроллере
У меня есть вложенный прокладывай
resources :users do
resources :messages
end
на моих пользователях показать страницу, у меня есть ...
<%= form_for([current_user, @message]) do |f| %>
<div class="field">
<%= f.text_area :content, placeholder: "Send a private message..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
, где текущий пользователь может отправить личное сообщение пользователю, на который на данный момент смотрят.
на моем message.rb я есть ...
belongs_to :user
и user.rb я есть ...
has_many :messages
на моих контроллерах пользователя показать действие У меня есть
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])
end
end
Когда пользователь нажимает кнопку отправки на моем шаблоне отображения, он переходит к моим сообщениям, создавая действие, однако им не удается получить идентификатор пользователя я смотрел (или пытаюсь отправить)
я распечатал свое переменное сообщение, и он говорит ...
[#<Message id: nil, content: nil, user_id: 1, to_id: nil, created_at: nil, updated_at: nil>]
: user_id является текущим пользователем (который я, с идентификатором из 1), однако я не могу получить to_id (который был пользователем, на который я только что посмотрел, скажем, его идентификатор был 2)
может кто-нибудь рассказать мне, как я могу его получить? я могу думать только о передаче идентификатора как скрытого поля, но я слышал, что это небезопасно.
справка была бы принята с благодарностью. благодаря
обновление: @ Андрей
хмм на самом деле его интересно, потому что если я делаю ...
@message = current_user.messages.build(to_id: @user.id)
и я прохожу в
<%= f.hidden_field :to_id, :value => @user.id %>
я получаю
Can't mass-assign protected attributes: to_id.
кто-нибудь знаю, почему?
хм это плохо сделать: to_id attr_accessible then? – Sasha
wait nvm. Мне действительно не нужно делать это attri_accessible. Я не уверен, почему я должен был это сделать раньше. у меня должно быть что-то не так. Большое спасибо за Вашу помощь! – Sasha