레일스 애플리케이션 용 주석 시스템을 구현하려고했습니다. 내 응용 프로그램의 모든 이벤트는 자신의 페이지이고 페이지의 주석 스레드입니다. 사용자가 아약스를 사용하여 의견을 제출할 수 있기를 바랍니다. 나는 RailsCast 136을 따르려고 노력했다. RailsCast 136은 기본적으로 내 앱에서 일하기를 원한다. 내가 코멘트를 게시 할 때마다 그러나, 아약스 요청을 통해려고하고 있지 않다, 나는 오류를 받고 있어요 :레일에 jquery가있는 Ajax 제출이 작동하지 않습니다.
Started POST "/events/undefined" for 127.0.0.1 at 2011-07-17 00:39:16 -0400
ActionController::RoutingError (No route matches "/events/undefined"):
가 여기 내 events_controller 내 show 액션에 대한 코드입니다.
def show
@event = Event.find(params[:id]) @comment = Comment.new session[:event_id] = @event.id @comments = @event.comments.reverse end
다음은 내 이벤트보기보기에 대한 내 의견 양식의 코드입니다.
<%= form_for(@comment, :remote => true) do |f| %> <% if signed_in? %>
<%= f.label :author %>
<% else %>
<%= f.text_field :author, :value => current_user.name %><%= f.label :author %>
<%= f.text_field :author %>
<% end %><p><%= f.label :content %><br /> <%= f.text_field :content %></p> <p><%= f.submit %></p> <% end %> </div>
다음은 내 actions_controller에 작성한 액션입니다.
def create @comment = Comment.create!(params[:comment]) @comment.event_id = session[:event_id] session[:event_id] = nil flash[:success] = "Comment sent!" respond_to do |format| format.html { redirect_to @comment.event } format.js end end
다음은 아약스로 게시하기위한 jQuery 코드입니다. 그것은 RailsCast가 제시 한 코드와 거의 같습니다 136
jQuery.ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} })
$(document).ready(function(){ $("#commentform").submit(function(){ $.post($(this).attr("action"), $(this).serialize(), null, "script"); return false; }) })
아무도 잘못 될 수있는 아이디어가 있습니까? 나는 레일스와 웹 개발에 대해 처음 보았고이를 수정하는 데 도움을 주셔서 감사합니다.
편집 : 문제를 해결하고 해결할 수있었습니다. 나는 근본적으로 vinceh가 내 경로를 중첩하는 것 외에도 레이아웃 한 솔루션을 따라 갔고 작동하도록했습니다. 고마워.
덕분에 너무 많은, 시드
안녕하세요 vinceh, 제안 해 주셔서 감사합니다. 그 코드 줄을 추가했지만 동일한 오류 메시지가 로그에 표시됩니다. 나는 내가 만든 액션을 코딩 한 방식에 문제가 있다고 생각한다.제출을 클릭하면 url/events/undefined가로드되어 오류를 일으키는 것으로 생각됩니다. – Sid
좋아, 이제 몇 가지 문제가 더있다. 우선, 양식을 제출할 때 format.js 대신 format.html을 사용하여 양식을 계속 처리합니다 (POST 시작시 "/ comments"에 127.0.0.1 오류가 발생 함) 2011-07-17 02:51 : 50 -0400 CommentsController로 처리 # HTML로 작성 ). 다른 문제는 주석이 만들어 질 때 레일스가 세션 해시에서 event_id를 읽을 수 없으며 내 의견에 event_id를 할당 할 수 없다는 것입니다. 모든 도움에 다시 한 번 감사드립니다! – Sid