Rails:将参数传递给关注点

Rails: Passing an Argument to a Concern

提问人:nullnullnull 提问时间:3/21/2013 更新时间:3/21/2013 访问量:2890

问:

DHH写了一篇文章,倡导使用关注点。这似乎是一个很好的做法,在很多情况下,它们与我的应用程序配合得很好。但是,在某些情况下,多个模型具有相似但略有不同的方法,例如:

def find_or_create_membership
  user_membership = User::Membership.where(:group_id => self.group_id,
  :user_id => self.invitee_id).first_or_create(:status => "invited")
end

和:

def find_or_create_membership
  user_membership = User::Membership.where(:group_id => self.group_id,
  :user_id => self.invitee_id).first_or_create(:status => "declined")
end

这些方法完全相同,只是第一种方法设置为“邀请”,第二种方法设置为“拒绝”。有没有办法通过关注点将参数传递给这些方法?status

Ruby-on-Rails 方法

评论

0赞 pjam 3/21/2013
我为此做的一件事是试图模仿 devise 正在做的事情,例如通过定义一个接受参数的类方法。这是设计示例(github.com/plataformatec/devise/blob/master/lib/devise/...),例如,这是我在我的一个项目中所做的:github.com/pjambet/beech-server/blob/master/app/models/concerns/...请注意,我的做法是完全错误和愚蠢的,这只是试图模仿设计(和其他人)的行为
0赞 nullnullnull 3/21/2013
如何传入参数?
0赞 pjam 3/21/2013
您可以像往常一样在类中调用该方法并传递参数:请参阅 github.com/pjambet/beech-server/blob/master/app/models/...
0赞 nullnullnull 3/21/2013
美丽。我会试一试。
0赞 antinome 9/4/2014
另请参阅 stackoverflow.com/questions/14300427/...

答:

0赞 m_x 3/21/2013 #1

您可能对Paramix感兴趣。

不过,我自己从来没有用过它。不知道,闻起来像一个假主意©。