我在部分表格中有以下代码:
<%= f.association :client %>
<%= f.input :url, :wrapper => :prepend do %>
<%= content_tag :span, "http://www.", :class => "add-on" %>
<%= f.input_field :url, :class => 'span4' %>
<% end %>
尝试加载与此表单部分相关的任何内容,例如新/编辑等导致Heroku错误。它在localhost上完美运行。
Heroku日志中唯一明显的错误是:
ActionView::Template::Error (undefined method `source' for nil:NilClass):
我担心我真的不明白,但认为这可能有助于任何人试图回答这个问题。
如果我更改表单部分代码,它在Heroku上工作没有任何问题,例如。
<%= f.input :url, :input_html => {:class => 'span4' } %>
显然我失去了我很好的自举附加范围,所以我宁愿找出问题所在而不是绕过它。
答案 0 :(得分:1)
在黑暗中拍摄,但也许是设置prepend包装器的初始化器(如initializers / simple_form.rb或initializers / simple_form_bootstrap.rb)不是由Heroku运行的,要么是因为它没有检入git,要么是因为初始化程序或环境文件中的某些特定于环境的逻辑。
答案 1 :(得分:0)
经过测试和Dan的一些帮助,我终于找到了它的底部。不幸的是,它似乎非常局限于我的情况。
但是如果有人发现这一点,我遇到的错误如下:
ActionView::Template::Error (undefined method `source' for nil:NilClass):
当我遵循Dan的建议打开生产站点上的错误报告(在config / environments / production.rb中设置consider_all_requests_local = true
)时,那是在日志中并且是相同的。
我认为错误是在模板中引起的,但是,它是模型中的一些验证规则。我的验证规则,其中一些正则表达式阻止用户使用某个字符串开始输入。他们在我当地工作得非常好,但Heroku真的不喜欢它!
我删除了那些验证规则,瞧,我很好的bootstrap附加跨度工作得很好。