ruby-on-rails - 将参数传递给葡萄实体模块

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-grape grape-entity

我的项目要求现在迫使我将参数传递给嵌套实体。 我有一个实体 A 和一个实体 B,它们显示一些信息并且需要系统上的 A 标识符来构建它们。

module Services
 module Trips
  class TripPreviewResponseEntity < Grape::Entity
   expose :id
   expose :title
   expose :duration
   expose :total_price
   expose :description
   expose :details
   expose :destinations, using: Destinations::DestinationResponseEntity
  end
 end
end

在上面的例子中我想做这样的事情:

expose :destinations, using: Destinations::DestinationResponseEntity, :trip_id => object.id

并在嵌套实体中以这种方式使用 trip_id 参数选项:

expose :trip_info do |item,options|
   item.show(options[:trip_id])
end

但是说对象没有定义到实体中是失败的。有没有办法执行此操作? 有什么想法吗?

最佳答案

module Services
 module Trips
  class TripPreviewResponseEntity < Grape::Entity
   expose :id
   expose :title
   expose :duration
   expose :total_price
   expose :description
   expose :details
   expose :destinations do |trip, _options| 
     DestinationResponseEntity.represent(trip.destinations, trip_id: trip.id)
   end
  end
 end
end

关于ruby-on-rails - 将参数传递给葡萄实体模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428211/

相关文章:

ruby-on-rails - 使用 Ruby on Rails 缓存登录表单

ruby-on-rails - 有没有办法在 Ruby 中访问方法参数?

ruby-on-rails - Capistrano 任务中的 bundle 配置找不到 Gemfile

ruby-on-rails - 具有多个断言的 RSpec 单元测试

ruby-on-rails - 延迟作业 - Rails 4

ruby-on-rails - 'rails c' 不起作用,但 'bundle exec rails console' 可以

ruby-on-rails-3 - Ubuntu 11.04 Ruby on Rails 安装写入权限错误

ruby-on-rails - Rails 3 - 使用“包含”进行选择?

ruby-on-rails - 链接对象上的自定义操作

ruby-on-rails - 如何在 rails form_for 中传递额外的参数