ユーザーは_チームに所属_チームには_多くのユーザーがいます。ユーザーは一度に 1 つのチームにしか所属できません。ユーザーがチームを作成したり、既存のチームに参加したり、現在のチームを離れたりできるようにしたいと考えています。以下は、現在モデル、コントローラー、およびビューにあるものですが、機能していません。
また、チームを作る人をチームリーダー(管理者)にしてほしいです。誰かがこれを行う方法を教えてもらえますか?
ユーザー モデル:
belongs_to :team, dependent: :destroy
def team_member?
team.present?
end
def join!(team)
team.create!
end
def unjoin!(team)
team.destroy
end
チームモデル:
has_many :users
attr_accessible :team_name, :team_id
validates :team_name, presence: true, length: { maximum: 140 }
default_scope order: 'teams.created_at DESC'
チームコントローラー:
before_filter :signed_in_user
def join
@team = Team.find params[:id]
current_user.update_attribute(:team_id, @team.id)
redirect_to @team
end
def leave
@team = Team.find params[:id]
current_user.update_attribute(:team_id, nil)
redirect_to @team
end
def create
@team = Team.new(params[:team])
if @team.save
flash[:success] = "Team Created!"
redirect_to @team
else
render 'new'
end
end
_join_team_.html.erb
<%= form_for(current_user.team.join) do |f| %>
<div><%= f.hidden_field :team_name %></div>
<%= f.submit "Join", class: "btn btn-large btn-primary" %>
<% end %>