フォームを AJAX 投稿リクエストにリファクタリングしています。
既存のフォームは次のとおりです。
<%= form_for([@group, @invitation], :remote => true, :html => { :'data-type' => 'html', :class => 'fbinvite_form', :id => friend[:identifier]}) do |f| %>
<%= f.hidden_field :recipient_email, :value => "facebook@meetcody.com" %>
<div class = "fbinvite btn_list_right" id = "<%= friend[:identifier] %>">
<%= f.submit "Invite", :class => "btn btn-medium btn-primary", :name => "fb" %>
</div>
<% end %>
コントローラーには、送信入力の名前をチェックするロジックがあります。
if params[:fb]
...
elsif params[:somethingelse]
...
end
それが背景です。上記のフォームを次の ajax に置き換えようとしています (わかりやすくするためにダミー データを追加しました)。
$.post('/groups/7/invitations', {
"recipient_email": "facebook@meetcody.com",
"commit" : "fb",
"fb" : "fb"
}, function(response) {
alert("invite created!");
});
これはコントローラーに正常にヒットしますが、条件で true と評価されませんif params[:fb]
。ご覧のとおり、そのパラメーターを渡すための非常に基本的な方法をいくつか試しましたが、明らかにうまくいきませんでした。
params[:fb]
として評価されるように ajax リクエストを変更するにはどうすればよいtrue
ですか?