相关疑难解决方法(0)

Rails扩展ActiveRecord :: Base

我已经做了一些关于如何扩展ActiveRecord:Base类的阅读,所以我的模型会有一些特殊的方法.扩展它的简单方法是什么(逐步教程)?

ruby-on-rails extend rails-activerecord

160
推荐指数
7
解决办法
6万
查看次数

如何创建Rails 4引起争论的关注点

我有一个名为User的ActiveRecord类.我正在尝试创建一个关注点Restrictable,其中包含一些这样的参数:

class User < ActiveRecord::Base
  include Restrictable # Would be nice to not need this line
  restrictable except: [:id, :name, :email]
end
Run Code Online (Sandbox Code Playgroud)

我想提供一个实例方法restricted_data,该方法可以对这些参数执行某些操作并返回一些数据.例:

user = User.find(1)
user.restricted_data # Returns all columns except :id, :name, :email
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

ruby ruby-on-rails ruby-on-rails-4 activesupport-concern

11
推荐指数
1
解决办法
5324
查看次数

Rails:将争论传递给关注者

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
Run Code Online (Sandbox Code Playgroud)

和:

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
Run Code Online (Sandbox Code Playgroud)

这些方法是相同的,除了第一个设置status为"邀请"而第二个设置为"拒绝".有没有办法通过关注点将参数传递给这些方法?

methods ruby-on-rails

5
推荐指数
1
解决办法
2344
查看次数