Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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_View_Model_Controller - Fatal编程技术网

Ruby on rails RAILS中将模型从一个控制器动作传递到另一个控制器动作的替代方法

Ruby on rails RAILS中将模型从一个控制器动作传递到另一个控制器动作的替代方法,ruby-on-rails,ruby,view,model,controller,Ruby On Rails,Ruby,View,Model,Controller,我在同一个控制器中有大约6-7个不同的操作,每次加载视图时都会遇到这些操作。我现在是这样做的: person\u id被传递到URL中 人事主任 上面的代码片段是在我的控制器中以6-7个动作编写的,相当于我需要显示的6-7个视图name和age 如何在第一个视图中按ID查找此人,然后在每个操作中跟踪特定的此人模型,而不必查找他并使用.map方法?创建这样的函数 def set_person person_id = params[:person_id] people = Per

我在同一个控制器中有大约6-7个不同的操作,每次加载视图时都会遇到这些操作。我现在是这样做的:

person\u id
被传递到URL中

人事主任 上面的代码片段是在我的控制器中以6-7个动作编写的,相当于我需要显示的6-7个视图
name
age


如何在第一个视图中按ID查找此人,然后在每个操作中跟踪特定的
此人
模型,而不必查找他并使用
.map
方法?

创建这样的函数

def set_person
     person_id = params[:person_id]
     people = PersonSearch.where(:person_id => person_id)
     @response_people = people.map do |p|
     {
           :name => p.name,
           :age => p.age
     }
end
然后在控制器的顶部添加以下内容,但将:show和:edit替换为要设置person的控制器操作

before_action :set_person, only: [:show, :edit]
如果您可以访问视图中的
@response\u people
,这将在您指定的每个操作之前运行set\u person函数

before_action :set_person, only: [:show, :edit]