У меня есть тело: текстовое содержимое: текст sender_id: целое число получатель_ид: целое число в таблице сообщений
У меня есть это в модели пользователя:
has_many :sent_messages, :class_name => "Message", :foreign_key => "sender_id"
has_many :received_messages, :class_name => "Message", :foreign_key => "receiver_id"
У меня есть это в модели сообщения:
belongs_to :sender, :class_name=>"User", :foreign_key=>"sender_id"
belongs_to :receiver, :class_name=>"User", :foreign_key=>"receiver_id"
После входа в систему при просмотре профиля другого пользователя (я имею в виду эту ссылку в представлении пользователя).
Я вызываю новое сообщение так:
<%= link_to "Send a Message",{:controller=>"messages",:action=>"new"}%>
У меня есть эти коды в messages_controller:
def new
@message = current_user.sent_messages.build
end
def create
@message = current_user.sent_messages.build(params[:message])
if @message.save
flash[:notice] = "Successfully created message."
redirect_to root_url
else
render :action => 'new'
end
end
#.....
Также у меня есть эти коды в views \ messages \ new.html.erb
<% form_for @message do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :body %><br />
<%= f.text_field :body %>
</p>
<p>
<%= f.label :content %><br />
<%= f.text_area :content %>
</p>
<p><%= f.submit "Submit" %></p>
<% end %>
После нажатия на ссылку я заполняю текст и текст, затем отправляю. Все сохранено, но значение receive_id равно нулю. Я пытался сделать много вещей, но не смог сохранить receive_id
Например: я установил ссылку так:
<%= link_to "Send a Message",{:controller=>"messages",:action=>"new",
:receiver_id=>@user.id}%>
Он отправляет нужный мне идентификатор пользователя, и я могу получить это значение с помощью params, но проблема в том, что я не смог найти способ сохранить это значение в базе данных при сохранении остальных.