大家好,我是其他语言转过来的,最近在研究 ruby,目前在传参这里碰到了难题,其他语言调用参数很简单,都是通过 fn(arg1,arg2) fn(arg1,arg2){ //do something}来调用的,但是如果在 ruby 中这样调用就会出问题,我的 arg1 参数是 ActionController::Parameters 类型,但是在 fn 接受参数后,参数类型变成了 array 类型,请问我需要怎么做,才能保持参数类型不变?
代码如下: issues_controller.rb:
def build_new_child_issue_from_parent
...
do something
...
logger.info(" issue_attributes.class.name => #{issue_attributes.class.name}")
#log日志中:issue_attributes.class.name => ActionController::Parameters
@issue_develop_action.safe_attributes= issue_attributes, User.current, type
end
issue.rb
def safe_attributes=(attrs, user=User.current, type='father')
logger.info("attrs.class.name => #{attrs.class.name}") #log日志中:attrs.class.name => Array
...
do something
...
end
现在 build_new_child_issue_from_parent 中 issue_attributes.class.name 是 ActionController::Parameters,在 safe_attributes 中 attrs.class.name 是 Array