1

このコードは、このリンクのルートを見つけられないため、ページのレンダリング中にエラーをスローします。

<li class="link">
    <%=link_to "Save current options to a cluster", division_clusters_path(@current_dvision, courses: @cluster_courses ), :method => :post unless @cluster_courses.empty? %>
</li>

古い3.2コピーでは機能しましたが、3.2.4を超えてアップグレードすると、POSTルートのみが存在する場合にGETルートを探しているため(標準のcreateメソッドに移動することを目的としています)、エラーがスローされ始めます。

私はそれをlink_toからbutton_toに切り替え、あいまいさを防ぐためにHTMLオプションからURLオプションを明示的にハッシュしようとしましたが、それでも何かを台無しにしています。

button_toが爆撃している場合、私は信じられないほど間違ったことをしていると思います。何なのかよくわかりません。

4

1 に答える 1

2

GETリクエストにフォールバックしているという事実は、:method => :postがoptions引数に組み込まれていないことを示しています。

# File actionpack/lib/action_view/helpers/url_helper.rb, line 231
def link_to(*args, &block)
  if block_given?
    options      = args.first || {}
    html_options = args.second
    link_to(capture(&block), options, html_options)
  else
    name         = args[0]
    options      = args[1] || {}
    html_options = args[2]
    .....  
  end
end

演算子の優先順位はunlessメソッド呼び出しよりも大きいため、division_clusters_path(@current_dvision, courses: @cluster_courses )原因の可能性があります。それがargs[1]に飲み込まれたものを返す場合、args [2]は残りのオプション(args [1]用)を取得します。ちなみに、そこにはタイプミスがあるようです@current_dvision

于 2012-08-03T18:42:03.203 に答える