Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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 如何在RubyonRails中从显示页面和索引页面访问方法_Ruby On Rails_Ruby_Methods - Fatal编程技术网

Ruby on rails 如何在RubyonRails中从显示页面和索引页面访问方法

Ruby on rails 如何在RubyonRails中从显示页面和索引页面访问方法,ruby-on-rails,ruby,methods,Ruby On Rails,Ruby,Methods,在我的模型中,我有一个返回变量的方法 def do_something(param1, param2) #code return variable end 我成功地从显示页面中呈现的部分调用了此方法。像这样: <%= @user.do_something(param1, param2) %> 从索引页中调用它,如下所示 <%= User.do_something(param1, param2) %> 。。。但这不是干涸的,我知道可能有一个更合适的解决方案

在我的模型中,我有一个返回变量的方法

def do_something(param1, param2)
  #code
  return variable
end
我成功地从显示页面中呈现的部分调用了此方法。像这样:

<%= @user.do_something(param1, param2) %>
从索引页中调用它,如下所示

<%= User.do_something(param1, param2) %>


。。。但这不是干涸的,我知道可能有一个更合适的解决方案。我仍在学习rails机制,因此我感谢您的帮助。

至少您可以使用委派:

class User < ActiveRecord::Base
  def do_something param1, param2
    self.class.do_something param1, param2
  end

  def self.do_something param1, param2
    ...
    return variable
  end
end
class用户
查看片段以及如何调用每个片段会很有用。错误也会很有用。如果您将其中一个调用为User实例,另一个调用为类本身(@User.do\u something vs User.do\u something),则这可能是问题的一部分。@joyejoejr这正是问题的一部分。问题是如何调整索引中使用的方法?@s2t2。如果它不依赖于实例,就没有理由将其作为实例方法。您可以委托,如下面的答案所示,也可以在视图中使用辅助对象。它将进入
app/helpers/application\u helper.rb
文件。此外,在索引页上,通常会循环浏览模型的实例。您的实例方法将在所有这些实例上可用。更新:我最后只是从索引和显示页面调用了类方法。
class User < ActiveRecord::Base
  def do_something param1, param2
    self.class.do_something param1, param2
  end

  def self.do_something param1, param2
    ...
    return variable
  end
end