为什么当我试图发送这三个参数(recipients_emails)时,我得到错误:
FreeRegistrationCouponsController中的ArgumentError #send
错误的参数数量(2表示0)Rails.root: /用户/ regedarek /代码/ 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
答案 0 :(得分:1)
不要调用你的动作发送 - 你要覆盖核心ruby方法。 Rails试图调用这个核心ruby方法,但最终调用你的方法,它有不同的签名。
Rails可能应该使用__send__
,以便您可以自由地使用send
,但现在您无法做到这一点。
答案 1 :(得分: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没有按照你包含它们的方式来预期参数。