2012-06-11 3 views
1

Я пытаюсь запустить яваскрипт линии от моего контроллера в качестве ответа на вызов AJAX:Почему мой контроллер рельсов не работает?

respond_to do |format| 
    if params[:return_to] == 'monthly_calendar' 
    render js: "alert('hey Trip!');" 
    else 
    format.js { render :partial => @task, layout: false } 
    format.html { redirect_to things_url } 
    format.json { render :json => @object.to_json } 
    format.xml do 
     if @task.new_record? 
     render :xml => @task.errors.to_xml 
     else 
     render :xml => @task.to_xml, :status => '201 Created' 
     end 
    end 
    end 

Вместо этого возвращает 406. Есть идеи?

Это, безусловно, соответствует правильному запросу в этом утверждении. Но не знает, что делать с яваскрипта вызова и возвращает 406.

ответ

3

Изменить его к этому

respond_to do |format| 
    if params[:return_to] == 'monthly_calendar' 
     format.js { render js: "alert('hey Trip!');" } 
    else 
    ..... 

Поскольку вы не указываете в каком формате вы отвечать, например, format.html {# ваш код здесь}, когда params [: return_to] == 'month_calendar'. Для получения дополнительной информации проверьте документацию respond_to.

1

Вы можете визуализировать полный вид task.js.erb вместо частичного.

Вот хороший учебник о том, что вы пытаетесь достичь:

http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/ 

Я надеюсь, что это помогает.

Удачи.

1

Попробуйте ответить на формат ЯШ:

format.js { render js: "alert('hey Trip!');" } 
Смежные вопросы