通过验证将参数从控制器发送到模型

时间:2011-05-16 18:24:37

标签: ruby-on-rails

我是rails noob,并且对从控制器向模型发送params感到困惑。比方说,我的模型包含字段user_id_fromuser_id_to,但对于控制器,它们来自tofrom(用于客户端简化)。

因此,在我的控制器中,我应该使用如此丑陋的代码修改模型的字段:

UserRelationship.crate(:to => params [:user_id_to],:from => params [:user_id_from])

OR

这种修改可以通过其他方式完成吗?

1 个答案:

答案 0 :(得分:1)

通常,最简单的方法是更改​​控制器或表单,如果可能,将它们作为参数[:user_id_to]和params [:user_id_from]发送。

但另一种方法是使用alias_attribute

# app/models/user_relationship.rb
class UserRelationship < ActiveRecord::Base
  alias_attribute :to,   :user_id_to
  alias_attribute :from, :user_id_from
end

这样做的简单方法也很简单:

def to=(val)
  self['user_id_to'] = val
end
def from=(val)
  self['user_id_from'] = val
end