首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RAILS中将模型从一个控制器操作传递到另一个控制器的替代方法

在RAILS中将模型从一个控制器操作传递到另一个控制器的替代方法
EN

Stack Overflow用户
提问于 2013-12-12 01:55:00
回答 1查看 97关注 0票数 0

我有大约6-7个不同的动作,在相同的控制器,在每个视图加载被击中。我现在是这样做的:

person_id被传递到URL中。

persons_controller

代码语言:javascript
运行
复制
person_id = params[:person_id]
people = PersonSearch.where(:person_id => person_id)
@response_people = people.map do |p|
  {
      :name => p.name,
      :age => p.age
  }

上面的代码片段是在我的控制器内的6-7操作中编写的,这相当于我需要在上面显示nameage的6-7视图。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-12 02:10:37

创建这样的函数

代码语言:javascript
运行
复制
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

然后,在控制器的顶部添加以下内容,但是用要设置person的控制器操作替换:show和:编辑。

代码语言:javascript
运行
复制
before_action :set_person, only: [:show, :edit]

这将在您指定的每个操作之前运行set_person函数,您可以在视图中访问@response_people

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20533612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档