0

Railsアプリを開発していて、条件に基づいてメソッド(:putと:post)を変更したいフォームがありますparams[id].to_s.present?。これが私の試みですが、何をしても、さまざまなエラーが発生します。

<%= form_tag( country_pend_create_path(), "#{params[:id].to_s.present? ? ':method => :put' : ':method => :post'}", :class => 'form-horizontal') do %>

form_for()それがこの目的を自動的に実行することを私は知っていますが、私はform_for()このフォームに使用することはできず、使用したくありません。これを機能させる方法について何かアイデアはありますか?

4

2 に答える 2

1

次のように簡単に書くことができます。

<%= form_tag( country_pend_create_path(), :method => params[:id].present? ? :put : :post, :class => 'form-horizontal') do %>
于 2012-08-27T00:33:45.220 に答える
0

ラムダを使用してみてください:

<%= form_tag( country_pend_create_path(), :method => lambda { params[:id].present? ? :put : :post }, :class => 'form-horizontal') do %>

to_s(何も変わらないと思うので削除しましたが、重要な場合は追加してください。)

于 2012-08-26T23:53:53.370 に答える