ねえ、私は新しい機能を書き、Spork を介してテスト スーツを実行しましたが、ビュー テストに失敗しました。ビューテストを見るのはこれが初めてなので、少し混乱します。
次のエラーが表示されます
ActionView::Template::Error:
No route matches {:controller=>"employment_equity", :action=>"update_percentage_of_black_youth", :method=>:put, :scorecard_id=>123456, :id=>nil}
テストしているビューは次のようになります(sassとhamlを使用しているため、#はidタグを参照するコメントではありません)
- if current_scorecard.base_charter_is? :transport_public_sector
.left
#percentage_of_employees_that_are_black_youth_input= f.field :percentage_of_employees_that_are_black_youth, :class => :percentage
.left
.auto_sum_link= link_to('Percentage from Details', update_percentage_of_black_youth_path(current_scorecard.id, @employment_equity.id), :method => :put, :remote => true)
ご覧のとおり、 を追加し:remote_true
て、link_to
その場でそのフィールドに ajax を入力できるようにしました。問題は、ルートがないことを訴えていることです。
私がそれを持っているとき!
match '/scorecards/:scorecard_id/employment_equity/:id/update_percentage_of_black_youth', :controller => 'employment_equity', :action => 'update_percentage_of_black_youth', :method => :put, :as => 'update_percentage_of_black_youth'
次に、モデルで計算した新しい値でフィールドを基本的に埋めるajaxにヒットします
$("#percentage_of_employees_that_are_black_youth_input input").val(<%= @employment_equity.percentage_of_employees_that_are_black_youth %>).effect("highlight", {color: "#C3EC97"}, 3000);
これはすべて私の開発環境で機能し、ユニットテストはすべて機能し、ajaxに渡されるリンクのためにレンダリングされない理由を理解できませんか? 誰も同様の問題を見つけましたか?