我正在尝试使用partial来自定义rails_admin中的编辑视图。在config / initializers / rails_admin.rb中我有:
RailsAdmin.config do |config|
config.model 'Album' do
edit do
field :promotion do
partial :hello_world
end
end
end
end
我还尝试过在rails_admin wiki上找到的其他语法:
RailsAdmin.config do |config|
config.model 'Album' do
edit do
field :promotion do
def render
bindings[:view].render :partial => carrierwave.to_s, :locals => {:field => self, :form => bindings[:form]}
end
end
end
end
end
我正在app / views / rails_admin / main / _hello_world.html.erb找到我的部分内容:
<h1>Hello World!</h1>
重新启动服务器后,除了空的“促销”字段外,编辑视图中不会显示任何内容。
Rails_admin有一个github问题。讨论似乎没有结果,在任何人确认解决方案适用于他们之前,问题已经结束。这个问题可以在这里查看:
https://github.com/sferik/rails_admin/issues/787
主持人为问题创建规范,然后将其关闭。可以在此文件的最底部查看规范:
我对规范的关注是它没有测试rails_admin查找partial的位置。根据rails_admin wiki,partials应该是app / views / rails_admin / main /
中的位置请帮助我理解我做错了什么,或者至少请告诉我rails_admin在这里仍然没有问题。我正在使用Rails 4和Ruby 2.0.0
答案 0 :(得分:0)
我对rspec没有经验,但是看过rails_admin的github链接后,文章提到了两种不同的方法来调用partial,我总是使用第二个选项。
所以对你来说,我建议你试试这样的部分:
<%= render partial: "hello_world", locals: { promotion: promotion, Album: album } %>
如果这不起作用,请告诉我:)
答案 1 :(得分:0)
查看rails-admin文档中提供的语法,看起来部分在两个示例中都呈现为字符串,而不是作为符号呈现。尝试将代码更改为以下内容:
RailsAdmin.config do |config|
config.model 'Album' do
edit do
field :promotion do
partial "hello_world"
end
end
end
end
如果这不能解决问题,我会推荐gem jazz-hands。它是一个内置pry-stack-explorer的调试包。我将它与binding.pry
和raise
结合使用,以便调试流程或逐步进入方法,看看发生了什么。
我打赌你能够追踪宝石实际渲染视图的哪个部分。当使用宝石时,我发现深入挖掘相应的代码库来弄清楚幕后发生的事情是很常见的。祝你好运!