0

この3つのparams(recipients_emails)を送信しようとすると、エラーが発生するのはなぜですか。

FreeRegistrationCouponsController#sendのArgumentError

引数の数が間違っています(0の場合は2)Rails.root:/ Users / regedarek / code / wifiname

アプリケーショントレース| フレームワークトレース| フルトレースapp/controllers / free_registration_coupons_controller.rbin `send '

何が間違っているのですか?

<div class="span6">
  <b>Give three of your friends a free registration</b>
  <%= form_tag :controller => 'free_registration_coupons', :action => "send" do %>
    <%= label_tag :recipient_email_1 %>
    <%= text_field_tag :recipient_email_1 %>
    <%= label_tag :recipient_email_2 %>
    <%= text_field_tag :recipient_email_2 %>
    <%= label_tag :recipient_email_3 %>
    <%= text_field_tag :recipient_email_3 %>
    <%= submit_tag %>
  <% end %>
</div>

class FreeRegistrationCouponsController < ApplicationController
  def send
    @sender_id = current_user.id

    binding.pry
    redirect_to root_path
  end
end

resources :free_registration_coupons do
  collection do
    get 'send'
    post 'send'
  end
end
4

2 に答える 2

1

アクションセンドを呼び出さないでください。コアのrubyメソッドを上書きしています。Railsはこのコアrubyメソッドを呼び出そうとしていますが、代わりに別のシグネチャを持つメソッドを呼び出すことになります。

Railsを使用して、自分の目的に__send__自由に使用できるようにする必要がありますが、現時点でできることはあまりありません。send

于 2012-05-03T14:10:19.940 に答える
0

次のようにフォームを変更してみてください。

<div class="span6">
  <b>Give three of your friends a free registration</b>
  <%= form_tag '/free_registration_coupons/send' do %>
    <%= label_tag :recipient_email_1 %>
    <%= text_field_tag :recipient_email_1 %>
    <%= label_tag :recipient_email_2 %>
    <%= text_field_tag :recipient_email_2 %>
    <%= label_tag :recipient_email_3 %>
    <%= text_field_tag :recipient_email_3 %>
    <%= submit_tag %>
  <% end %>
</div>

問題は、form_tagが引数を含めた方法で引数を期待していないことだと思います。

于 2012-05-03T14:17:03.740 に答える