アプリで 2 人のユーザー間でプライベート メッセージング機能を作成しようとしていますが、ここで問題が発生しています
まず、これが 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 つのフォームで 2 つの異なるモデルの属性を処理する方法はありますか?
user_idを Message から取り出して、理論的にはまだ機能するメッセージング システムを使用できることはわかっていますが、各メッセージを送信者に関連付けるには、それを含める必要があると考えました。
- 私が考えることができる唯一の回避策は、会話が初めて作成されたときに add_content_to_conversation も Message に渡すことです。これが、このデータベース設計で考えられるすべてです。これは本質的に欠陥がありますか?
どんな助けでも素晴らしいでしょう。レール初心者です。
ありがとう