Ruby on rails RABL-自定义集合
我正在尝试使用RABLAPI构建自定义集合。我有一个想法模型,其中包含一系列想法行动。我需要使用RABL附加idea操作的自定义集合,但是我似乎无法使用child:idea\u操作,因为我需要知道当前操作。下面的代码显示错误。。。任何解决方案如何获得我想要的自定义集合Ruby on rails RABL-自定义集合,ruby-on-rails,ruby,rabl,Ruby On Rails,Ruby,Rabl,我正在尝试使用RABLAPI构建自定义集合。我有一个想法模型,其中包含一系列想法行动。我需要使用RABL附加idea操作的自定义集合,但是我似乎无法使用child:idea\u操作,因为我需要知道当前操作。下面的代码显示错误。。。任何解决方案如何获得我想要的自定义集合 object @idea attributes *Idea.column_names # need access to current action node :idea_actions do @idea.idea_act
object @idea
attributes *Idea.column_names
# need access to current action
node :idea_actions do
@idea.idea_actions.each do |action|
{ :id => action.id}
{ :custom_stuff => action.some_method } if action.something?
end
end
# can't do that...
# child :idea_actions
我有一个类似的用例。这就是我要做的,让它工作: 解决方案1
- 引入用于呈现子属性的部分属性(\u idea\u action.rabl)
- 修改主视图以扩展新的局部视图
child(:idea_actions) { extends("_idea_action") }
node :idea_actions do
@idea.idea_actions.map do |action|
{ :id => action.id}.tap do |hash|
hash[:custom_stuff] = action.some_method if action.something?
end
end
end
解决方案3
child :idea_actions do
attributes :id
node(:custom_stuff, :if => lambda {|action| action.something?}) do |action|
action.some_method
end
end
只有当我想要子模型的标准属性,而不是自定义/条件的东西时,这才有效。更新了答案,看一看。试一下。给定上下文中的root_对象是子项的集合,而不是单个对象。
child :idea_actions do
attributes :id
node(:custom_stuff, :if => lambda {|action| action.something?}) do |action|
action.some_method
end
end