gpt4 book ai didi

ruby-on-rails-3 - 使用多态模型渲染 RABL 局部

转载 作者:行者123 更新时间:2023-12-04 06:56:41 26 4
gpt4 key购买 nike

我有一个数据模型,其中 User可以点个Project, Suggestion, Comment ,或其他对象。模型设置正确,likes/show.rabl如果我们只是为了支持 Project 就可以工作 child

object @like
attributes :id, :created_at, :target_type, :target_id, :user_id
child :user => :user do
extends "users/show"
end
child :target do
node do |project|
partial('projects/show', :object => project)
end
end

但是,我希望能够使用 suggestions/show, comments/show 的部分内容也取决于 target_type .

我试过了,但没用:

child :target do |u|
u.target.map do |r|
if r.is_a?(Suggestion)
partial("suggestions/show", :object => r)
elsif r.is_a?(Project)
partial("projects/show", :object => r)
end
end
end

我得到 undefined method target for <Rabl::Engine:0x69fb988> .但是,在第一种情况下我没有收到此错误。有什么想法吗?

最佳答案

您是否尝试过使用 extends 而不是 partial

也许你可以尝试这样的事情?

child :target do |u|
u.target.map do |r|
if r.is_a?(Suggestion)
extends "suggestions/show"
elsif r.is_a?(Project)
extends "projects/show"
end
end
end

在这种情况下,当你使用 extends 时,你不需要传入一个 :object 因为你已经在迭代的范围内了对象 r.

关于ruby-on-rails-3 - 使用多态模型渲染 RABL 局部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11207413/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com