레일을 통해 새로운 "트윗"을 제출하고 AJAX로 처리하려고합니다. 400 개의 잘못된 요청 문제가 계속 발생합니다. 그럼에도 불구하고 트윗은 게시 중이며 서버는 200을 반환합니다. 도와주세요.레일 양식 및 AJAX 400 잘못된 요청 문제
오류가
이 TweetsController 번호로 2016년 7월 10일 20시 20분 21초 -0400 처리에 : 1 "/ 트윗을"POST를 시작 HTML 로 400 잘못된 요청에 완료 만드는 것입니다 2ms의 (액티브 : 0.0ms)
ActionController :: ParameterMissing (PARAM가 없거나 값이 비어 : 짹짹) :
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
트윗 컨트롤러 # 행동
private
def tweet_params
params.require(:tweet).permit(:message)
end
트윗 인덱스보기 모든 도움에 유래에 대한
<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 %>
감사를
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을 만들!
'tweet_params' 메서드는 어떻게 생겼습니까? – kasperite
안녕 @kasperite는,이처럼 : (: 트윗) .permit (: 메시지) 나는이 문제를 알고 추측 끝 – IWI
개인 데프 params.require을 tweet_params. 마지막 질문인데, 왜 당신의 ajax 요청에서''html ''즉''dataType : html''으로 데이터를 반환하겠습니까? – kasperite