使用带有Devise身份验证的rails 4。
我在用户和挑战之间存在一对多的关系。一个用户可能面临许多挑战。 challenge表中有一个外键user_id。目前,此FK仅由创建挑战的用户填充。但是我希望其他用户能够加入挑战。这必须非常简单,因为我确定它只涉及插入想要加入挑战表的用户的外键。但是,我不确定如何做到这一点。
我想这涉及用户按下“加入”按钮。挑战视图中的按钮。然后将其路由到质询控制器中的连接操作(这就像更新操作?是正确的),它将传递当前用户ID和我想要加入ID的质询。然后,这将更新数据库
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div id="menu" style="
height: 50px;
width: 100%;
BACKGROUND: rgb(57,65,101);
border-radius: 5px;
">
<div id="dashBoard" class="menu">DashBoard<span class="spanHighlight"></span>
</div>
<div id="addApp" class="menu selected">Add Application<span class="spanHighlight"></span>
</div>
<div id="linkApp" class="menu">Link Applications<span class="spanHighlight"></span>
</div>
</div>
答案 0 :(得分:0)
我想这涉及用户按下“加入”按钮。按钮在挑战中 视图。然后,这将被路由到挑战中的联接操作 控制器(这就像更新动作?是正确的)和它 会传递当前用户ID和我要加入ID的挑战。 然后,这将更新数据库
这是正确的假设,但您无法在user_id
中插入challenges
,您必须创建名为UserChallenge
的新模型并且:
class User < ActiveRecord::Base
...
has_many :challenges # you old association, created?
has_many :user_challenges
has_many :joined_challenges, # list of all joined challenges
through: :user_challenges,
class_name: "Challenge"
...
end
class Challenged < ActiveRecord::Base
...
belongs_to :user # you old association
has_many :user_challenges
has_many :joined_users, # list of all joined users
through: :user_challenges,
class_name: "User"
...
end
class UserChallenge < ActiveRecord::Base
...
belongs_to :user
belongs_to :challenge
...
end