gpt4 book ai didi

ruby-on-rails - 如何向 Rails 4.2 查找添加自定义 View 部分路径?

转载 作者:行者123 更新时间:2023-12-04 05:58:50 25 4
gpt4 key购买 nike

我在 app/views/app1/users 中有一个类似于 this solution 的演示部分.我已经尝试在上述解决方案中使用 prepend_view_path ,但无济于事。

哈姆:

#demonstration
= f.semantic_fields_for :demonstration do |ud|
= render 'demonstration_fields', :f => ud

但我得到这个错误:
Missing partial app1/_demonstration_fields, application/_demonstration_fields with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml]}. Searched in:

使其工作的唯一方法是将完整路径传递给渲染,如下所示:
= render 'app1/users/demonstration_fields', :f => ud

但这违背了试图通过 prepend_view_path 避免冗余代码(例如,指定完整路径)的目的。有没有办法避免通过完整路径?

最佳答案

您可以覆盖 ActionView::ViewPaths.local_prefixes Rails 中的每个 Controller 都混入的私有(private)类方法。该方法上方的注释甚至说:

Override this method in your controller if you want to change paths prefixes for finding views



在这种情况下,“ View ”也意味着部分。因此,您可以将以下内容添加到您的 App1Controller :
class App1Controller < ApplicationController
def self.local_prefixes
[controller_path, "#{controller_path}/users"]
end
private_class_method :local_prefixes
end

然后,当你 render 'demonstration_fields', :f => ud ,您的查找路径应如下所示(按顺序):
app1/_demonstration_fields,
app1/users/_demonstration_fields,
application/_demonstration_fields`

关于ruby-on-rails - 如何向 Rails 4.2 查找添加自定义 View 部分路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003206/

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