Rails Forms для личных сообщений
Я пытаюсь создать в моем приложении функцию обмена личными сообщениями между двумя пользователями, и у меня возникают проблемы
Во-первых, вот Schema.rb
create_table "conversations", :force => true do |t|
t.string "conversation_subject
end
create_table "messages", :force => true do |t|
t.string "content"
t.integer "user_id"
t.integer "conversation_id"
end
create_table "participants", :force => true do |t|
t.integer "conversation_id"
t.integer "user_id"
end
conversations has_many :messages, :participants
users has_many :messages, :participants
Форма для начала разговора:
<%= form_for @conversation do |f| %>
<div class="field">
<strong>Subject</strong><br />
<%= f.text_field :conversation_subject %>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
В форме выше, я хотел бы иметь
<%=f.text_area :content %>
для сообщения, так что одним щелчком мыши он создает диалог и сообщение, но я не смог использовать вложенные атрибуты здесь из-за user_id (возможно,
вы можете? но из моего понимания нельзя)
- Есть ли способ обработки атрибутов из двух разных моделей в одной форме без использования вложенных атрибутов?
обратите внимание, я знаю, что user_id может быть извлечен из сообщения и теоретически иметь функциональную систему обмена сообщениями, но я подумал, что для того, чтобы связать каждое сообщение с отправителем, необходимо включить его
- Единственный обходной путь, который я мог бы придумать, - это также добавить add_content_to_conversation и передать его в Message при первом создании Conversation. Это все, что я мог придумать с этим дизайном БД. Это по своей сути недостатки?
Любая помощь будет отличной. Я начинающий рельсы.
Спасибо
1 ответ
У меня проблемы с следованием (Длинный день), но помогает ли это?
Сообщения
belongs_to :recipient, :classname => 'User'
belongs_to :sender, :classname => 'User'
create_table "messages", :force => true do |t|
t.string "content"
t.integer "recipient_id"
t.integer "sender_id"
t.integer "conversation_id"
end