-1

ユーザーは_チームに所属_チームには_多くのユーザーがいます。ユーザーは一度に 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 %>
4

1 に答える 1

0

アソシエーションは問題ないようです。コードで作業します。"teamlead" を追加has_oneするには、チーム モデルに関連付けを追加します。

has_one :teamlead, :class => "User", :dependent => :nullify
于 2012-08-27T04:36:16.263 に答える