Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails,是否可以将参数从控制器传递到模型方法?_Ruby On Rails_Ruby On Rails 3_Methods_Model_Refactoring - Fatal编程技术网

Ruby on rails Rails,是否可以将参数从控制器传递到模型方法?

Ruby on rails Rails,是否可以将参数从控制器传递到模型方法?,ruby-on-rails,ruby-on-rails-3,methods,model,refactoring,Ruby On Rails,Ruby On Rails 3,Methods,Model,Refactoring,在我的模型中,我有几个类似的命名方法来启用/禁用某些功能,如: def invisible self.update_attribute(:invisble, false) end def visible self.update_attribute(:invisble, true) end 是否可以将其重构为单个方法并从控制器传递参数?还是有更好的方法来处理这些问题 您可以这样做: def set_visibility(param) self.update_

在我的模型中,我有几个类似的命名方法来启用/禁用某些功能,如:

  def invisible
    self.update_attribute(:invisble, false)
  end

  def visible
    self.update_attribute(:invisble, true)
  end

是否可以将其重构为单个方法并从控制器传递参数?还是有更好的方法来处理这些问题

您可以这样做:

def set_visibility(param)
  self.update_attribute(:invisible, param == "true")
end
在控制器中:

@object.set_visibility(params[:visible])

这就是你的意思吗?

就像那样,将param==default移到def lineOne中,考虑命名约定。可以使用is_visible方法来检查返回true或false(或者更好地使用just visible?)。def可见性是否应重命名为def set_可见性?不确定命名约定,但感谢您的回答,如果您更新了方法名称,我们将在10分钟内接受,不确定是否最好创建另一个方法
可见?