新しい「ツイート」をレールform_forで送信し、AJAXで処理しようとしています。私は絶えず400の悪い要求の問題を得ています。これにもかかわらず、つぶやきはまだ投稿されており、サーバーは200を返しています。お手伝いしますか?RailsフォームとAJAX 400の間違ったリクエストの問題
エラーが
ではTweetsController番号で:: 1処理 -0400 20時20分21秒2016年7月10日のためにPOST "/つぶやき" を開始HTML として作成するには400不正な要求を完了2msの(ActiveRecordの:0.0ms)
ActionController :: ParameterMissing(パラメータが欠落しているか、値が空である:つぶやき):
tweets.js
$(function(){
//grab the click event
$('#new_tweet').on('submit', function(e){
var valuesToSubmit = $(this).serialize;
console.log('point one')
//var self = $(this)
e.preventDefault();
$('.tweets').html('');
//start ajax function
$.ajax({
url: $(this).attr('action'),
method: 'POST',
data: valuesToSubmit,
dataType: 'html'
});
});// end of click event
}); //end of on load function
ツイートコントローラ#が
def create
@tweet = Tweet.new(tweet_params)
if @tweet.save
if request.xhr?
render @tweet, layout: false
else
redirect_to root_path
end
else
render :index
end
tweet_paramsアクション
private
def tweet_params
params.require(:tweet).permit(:message)
end
ツイートインデックスビューすべてのヘルプStackOverflowのため
<ul class="tweets">
<% @tweets.each do |tweet| %>
<li class="tweet">
<p><%= tweet.message %></p>
<time><%= tweet.created_at.strftime('%b %e, %l:%M %p') %></time>
</li>
<% end %>
</ul>
<%= form_for @tweet, remote: true do |f| %>
<%= f.text_area :message, placeholder: "What did you learn today?" %>
<%= f.submit "Tweet", id: "create-tweet" %>
<% end %>
感謝を作成します!
あなたの 'tweet_params'メソッドはどうですか?私はこの問題を知っていると思います 終了 – kasperite
@kasperiteこんにちは、それはこのようなものです。最後の質問で、なぜあなたのajaxリクエストに '' html ''、つまり' dataType:html'というデータを返すのですか? – IWI
(::つぶやき).permit(メッセージ)DEF params.requireをtweet_params プライベート : – kasperite