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 (возможно,
вы можете? но из моего понимания нельзя)

  1. Есть ли способ обработки атрибутов из двух разных моделей в одной форме без использования вложенных атрибутов?

обратите внимание, я знаю, что user_id может быть извлечен из сообщения и теоретически иметь функциональную систему обмена сообщениями, но я подумал, что для того, чтобы связать каждое сообщение с отправителем, необходимо включить его

  1. Единственный обходной путь, который я мог бы придумать, - это также добавить 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
Другие вопросы по тегам