2

すでに使用しているformtasticと組み合わせてnested_formgemを使用するようにサイトを切り替えようとしていますが、奇妙なエラーが発生します。開発ではすべてが完全に正常に機能し、テストに合格します。このエラーは本番環境でのみ発生します。

が使用されているページにアクセスするsemantic_nested_form_forと、次のエラーが発生します。

ActionView::Template::Error (undefined method `semantic_nested_form_for' for #<#<Class:0x0000000524cca0>:0x00000004e46a70>):
    1: <%= semantic_nested_form_for(@volume) do |f| %>
    2:   <%= f.inputs do %>
    3:     <%= f.input :number, :label => 'Volume #', :input_html => {:style => 'width:100px;', :autofocus => true}, :hint => raw('Choose the volume number.') %>
    4:   <% end %>
  app/views/volumes/_form.html.erb:1:in `_app_views_volumes__form_html_erb__2632693694855646779_43838320'
  app/views/volumes/new.html.erb:3:in `_app_views_volumes_new_html_erb___2327298489284463705_41053660'

gemは私のGemfileにあり、正しくインストールされているようです。

[~/application/current]$ bundle show nested_form
/home/deployer/application/shared/bundle/ruby/1.9.1/gems/nested_form-0.3.1

semantic_nested_form_for本番コンソールでを正常に呼び出すこともできます。

[~/application/current]$ rails c production
Loading production environment (Rails 3.2.12)
irb(main):001:0> helper.semantic_nested_form_for(Volume.new, url: '/volumes' do |f|
irb(main):002:2* f.inputs
irb(main):003:2> f.actions
irb(main):004:2> end
irb(main):005:1> 

さらに、semantic_form_forそれ自体は正常に機能しますが、nested_form_for(パーツなしではsemantic_)機能しないため、これはに直接関連していると思いますnested_form

erbコードがこの問題に実際に関連しているとは思いませんが、とにかくここにあります:

<%= semantic_nested_form_for(@volume) do |f| %>
  <%= f.inputs do %>
    <%= f.input :number, label: 'Volume #', input_html: {autofocus: true}, hint: 'Choose the volume number.' %>
  <% end %>

  <div id="issues_fields">
    <%= f.semantic_fields_for :issues %>
    <%= f.link_to_add 'Add an Issue', :issues %>
  </div>

  <%= f.actions do %>
    <%= f.action :submit, label: 'Save' %>
  <% end %>
<% end %>
4

1 に答える 1

2

さて、私は少し唖然としています。Capistranoは、デプロイするとユニコーンを再起動します。この質問をする前に、それを除外するために、nginxとユニコーンを手動で再起動しようとしました。質問をした後、本番サーバー全体を再起動しました(これは嫌いです)。これで、正常に動作しています。

ユニコーンプロセスを再起動するだけでは不十分だった理由を誰かに教えてもらえれば、その回答を承認済みの回答としてマークします。

于 2013-02-15T21:20:53.067 に答える