赵龙 全栈之路

自学 教材知识点与技巧总结.05 “rails 101”教材7-2至7-6

| Comments

“rails 101”教材中“7-2 建立“群成员”数据表”的小知识点与小技巧总结:

  • 建立一个新的 model 叫 GroupRelationship。这个数据表里面只有两个栏位: group_id ( integer )user_id ( integer) ,记录了“谁”参加了“哪个群组”,
    • 程序终端输入 rails g model group_relationship group_id:integer user_id:integer
    • 再执行 rake db:migrate
  • 代码 git commit -m "implement group relation" 中的 implement group relation 个人理解为 实作群组关系
  • 测试实作群组关系是否成功,程序终端打开 rails console (可以理解为金手指后面),输入以下代码,结束后执行 exit 退出。
 u = User.first
 g = Group.first
 g.members << u
 g.members
 u.participated_groups

“rails 101”教材中“7-3 在群组里面判断“是否群组成员”实作”的小知识点与小技巧总结:

  • 在 user model 内实作判断式“是否为群组的一分子”
app/models/user.rb
class User < ApplicationRecord
  #  ...
  
  
+    def is_member_of?(group)
+      participated_groups.include?(group)
+    end
  end

测试下,程序终端打开 rails console ,输入以下代码,结束后执行 exit 退出。

u = User.first
g = Group.first
u.is_member_of?(g)

  • 代码 git commit -m "implement is_member_of?(group)" 中的 implement is_member_of?(group) 个人理解为 实作判断式is_member_of?(group)

“rails 101”教材中“7-4 “加入群组”或“退出群组””的小知识点与小技巧总结:

  • 实作 model 层 “加入群组”、“退出群组”。
app/models/user.rb
class User < ApplicationRecord
  #  ...
  
  
  def join!(group)
    participated_groups << group
  end

  def quit!(group)
    participated_groups.delete(group)
  end
end

测试下,程序终端打开 rails console ,输入以下代码,结束后执行 exit 退出。

u = User.first
g = Group.first
u.join!(g)
u.is_member_of?(g)
u.quit!(g)
u.is_member_of?(g)

  • 代码 git commit -m "join or quit group" 中的 join or quit group 个人理解为 加入或退出群组

“rails 101”教材中“7-5 实际操作“加入群组”或“退出群组”7-6 User 在建立 group 后自动成为 group 的一员

  • 代码 git commit -m "join & quit group action" 中的 join & quit group action 个人理解为 加入/退出的群组动作
  • 代码 git commit -m "when created a group, join it automatically" 中的 when created a group, join it automatically 个人理解为 创建群组时自动加入automatically 百度翻译为 自动的 。 ​ ​

Comments

comments powered by Disqus