我是rails noob,并且对从控制器向模型发送params感到困惑。比方说,我的模型包含字段user_id_from
和user_id_to
,但对于控制器,它们来自to
和from
(用于客户端简化)。
因此,在我的控制器中,我应该使用如此丑陋的代码修改模型的字段:
UserRelationship.crate(:to => params [:user_id_to],:from => params [:user_id_from])
OR
这种修改可以通过其他方式完成吗?
答案 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