0

私が取り組んでいるRailsアプリケーションには、ユーザーとグループという2つの中心的な要素があります。ユーザーはフォームを介して登録し、usersテーブルに追加されます。

グループテーブルには、名前、タイトル、説明、メンバーシップの4つの主要な列があります。

グループは2つのステップで処理されます。

  1. ステップ1:管理者がグループ(名前、タイトル、説明)を作成します。
  2. ステップ2:メンバーシップはJSONフィールドです。管理者は、2番目のフォームを使用してログインし、そのJSON構造のフィールド(グループ所有者、グループ管理者、メンバー)を追加/編集し、JSONに解析/再解析して、グループテーブルを更新する必要があります。

ユーザーのサインアップとグループ作成フォームは正常に機能しています。問題は2番目の形式です:グループのメンバーシップを作成します。どうすればいいのかよくわかりません。

私が行ったことは、グループから適切に選択するためのリンクとルートを作成し、[表示]ページにルートとリンクを追加することで正しいパラメーターを使用してREST呼び出しを生成することです。lインクが正しいことを確認しました。カーソルを合わせると、http://myapp.com/groups/3/adminが表示されます(3はグループテーブルの正しいIDです)。

私のgroups_controller.rbのメソッドは、次のようになっています。

  def show
    @group = Group.find(params[:id])
    respond_to do |format|
    format.html # show.html.erb
    format.json { render json: @group }
  end
end

groups_admin.html.erbを作成し、views/groupsフォルダーに配置しました。ドロップダウンボックスのセットを構築するロジックが含まれているため、管理者はユーザーリストからグループメンバーシップを選択できます(関数はグループヘルパーにあります)。

私が知らないのは、groups_admin.html.erbのフォーム宣言などでそれを完了する方法と、その特定の行を更新するためにgroups_controller.rbに何を追加するかです(返されたフィールドをJSON)。これまでのところ、これが私がそれに追加したものです

def admins
end

グループテーブルスキーマを変更し、追加のgroups_admins、groups_owners、groups_membersテーブルを作成することはオプションではありません。何か案は?

4

1 に答える 1

0

あなたは協会を探しています。この場合、おそらくグループhas_manyユーザーとユーザーhas_manyグループが必要です。has_and_belongs_to_manyまたは、ユーザーが複数のグループに参加できるようにする場合は、関連付けを探します。これについては、http://guides.rubyonrails.org/association_basics.htmlで確認できます。

于 2012-07-03T19:30:32.697 に答える