Похоже, вы должны установить модельное отношение между ними, или это то, что у вас уже есть.
в вашем методе создания просто сделайте это
@post = current_user.posts.create(params[:post])
Это не требует поляв интерфейсе и обеспечивает связь между пользователем и его сообщениями
РЕДАКТИРОВАТЬ комментарии
Похоже, вам нужно изменить в post.rb
belongs_to :user
на
belongs_to :sender, :class_name => "User"
РЕДАКТИРОВАТЬ в схему
В соответствии с вашей моделью вы просто сохраняете строку отправителя / получателя, поскольку в этом случае вам нужно сделать следующее:
in controller#create
@post = Post.create(params[:post])
@post.sender = current_user.username
РЕДАКТИРОВАТЬ: Как это сделать правильно
Исходя из вашего комментария, похоже, что вы хотите сделать это в реляционной форме, хорошо.
Прежде всего, для вашего поста вам нужно изменить отправителя и получателя на целые числа и переименовать, затем sender_id и receive_id соответственно.
Далее в вашей модели user.rb вам необходимо иметь следующее:
has_many :sent_posts, :foreign_key => "sender_id"
has_many :received_posts, :foreign_key => "receiver_id"
В вашей модели post.rb вам понадобитсяследующее:
belongs_to :sender, :class_name => "User"
belongs_to :receiver, :class_name => "User"
Теперь вы можете сделать следующее при создании сообщения
@post = current_user.sent_posts.create(params[:post])
И доступны следующие методы
@post.sender #=> gets the sender
@post.receiver #=> gets the receiver
current_user.sent_posts #=> all posts from this user
current_user.received_posts #=> all posts for this user
ПРИМЕЧАНИЕ Я не могу проверить это, но я уверен, что вышеприведенное должно работать для вас, могут быть небольшие ошибки, поскольку я не могу проверить еще раз