【发布时间】:2013-05-07 10:34:04
【问题描述】:
我不确定我的逻辑在以下场景中是否正确,也许它甚至不是最佳实践,或者可能有更简单的方法。我也不确定如何设置我的代码,所以如果有人有任何指示,将不胜感激。
好的,我有两个模型
class MiniLeague < ActiveRecord::Base
attr_accessible :league_name, :team_id, :league_key
has_many :teams
end
class Team < ActiveRecord::Base
attr_accessible :team_name, :user_id, :mini_league_id, :key
belongs_to :user
has_many :mini_leagues
end
创建迷你联赛时,会生成一个随机数(密钥),这样只有拥有该密钥的球队才能加入该联赛。密钥将传递给想要加入特定迷你联赛的用户。
我有点卡住的部分是在将球队添加到联赛时要做什么,到目前为止,我的想法是在创建球队时有一个字段来添加这个键,然后将它保存到模型中(或者如果团队已经使用密钥创建更新)。所以现在我的团队模型有一个团队名称和一个密钥。
关于如何比较这两个密钥以便只有获得授权的团队才能加入迷你联赛的任何建议。还是您会以不同的方式处理这个问题?我意识到这可能是一个很大的答案,但我很乐意接受一些指示,以便我可以找到有关如何执行此类操作的资源
谢谢
编辑
我可以在团队控制器中做类似的事情吗
Team Controller
def create
if params[:key] && params[:mini_league_id] == params[:mini_league][:league_key] && params[:mini_league][:league_id]
@team = Team.create(params[:team])
else
render :new, notice: "invalid key"
end
end
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 model key