如何将params传递给Rails控制器的回调

时间:2018-06-12 05:33:13

标签: ruby-on-rails

回调如下。

class User
  include UserSettable

  before_action :set_user

  def show
    [Something with @user]
  end
end

class Group
  include UserSettable

  before_action :set_user
  ...
end      

set_user如下所示。并且此方法在控制器关注中定义。

module UserSettable
  extend ActiveSupport::Concern

  def set_user
    @user = User.find(params[:id])
  end
end

我有三个问题。

  • 如何将params传递给回调方法?
  • 关注中定义的实例变量是否可以在控制器中使用?
  • 此实现是否偏离了通常使用的rails?

1 个答案:

答案 0 :(得分:1)

  

如何将params传递给回调方法?

请求的

public static void main(String[] args) { String str = "XXYZZA"; char[] a = str.toCharArray(); HashSet<Character> set = new HashSet<>(); set.add( a[0]); for (int i = 1; i < a.length; i++) { if (!set.contains(a[i]) && (i+1 == a.length || a[i] != a[i+1])) { System.out.println(a[i]); } set.add(a[i]); } 将自动生效。您不需要明确传递它。您的代码段是如何使用它的完美用例。

  

关注中定义的实例变量是否可以在控制器中使用?

你的意思是控制器的关注点。我认为那里定义的实例变量应该是可用的。你能举例说明你想要实现的目标吗?

  

此实现是否偏离了通常使用的rails?

没有