gpt4 book ai didi

ruby-on-rails - 在 Rails 中嵌套资源时的不同 View

转载 作者:行者123 更新时间:2023-12-04 05:53:09 26 4
gpt4 key购买 nike

我正在使用 Rails 3.2.1。

使用嵌套资源时是否可以使用不同的 View ?即个人资料/评论帖子/评论。假设您希望两个页面看起来完全不同。有没有办法在不覆盖每个 Controller Action 中的渲染的情况下做到这一点?

最好我仍然想使用 response_with。

最佳答案

我没有找到任何东西,最后我是通过以下方式做到的:

class NestedController < ApplicationController

before_filter :retrieve_parent
before_filter :retrieve_scope

layout :retrieve_layout

def retrieve_scope
@scope = @parent.nil? ? controller_name : @parent.class.name.pluralize.downcase || ''
end

def retrieve_view
controller_name + '/' + @scope + '/' + action_name
end

def retrieve_parent
params.each do |name, value|
if name =~ /(.+)_id$/
@parent = $1.classify.constantize.find(value)
end
end
end

def retrieve_layout
template_exists?(@scope, 'layouts') ? @scope : 'application'
end

end

每个使用嵌套资源的 Controller 都将从 NestedController 扩展。

请注意,retrieve_parent 函数源自 Ryan 关于多态关联的 railscast。

希望这可以帮助某人。

关于ruby-on-rails - 在 Rails 中嵌套资源时的不同 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9826245/

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