2015-07-27 2 views
2

Я пытаюсь добавить раздел «рекомендации» на страницу профиля макета с помощью ajax. Когда я нажимаю кнопку «Рекомендации» - на странице индексации coding_skills, я получаю нулевые ошибки сервера или журнала, но страница остается на индексной странице и не загружает страницу «рекомендации». Любой совет будет очень благодарен!Rails 4 Broken Link Использование Ajax

Рекомендации Контроллер

class RecommendationsController < ApplicationController 

    def index 
    @recommendations = Recommendation.all 
    end 

    def new 
    @recommendation = Recommendation.new 
    end 

    def create 
    @recommendation = Recommendation.new(recommendation_params) 
    @recommendation.recommendation_author = current_user.email 
    if @recommendation.save 
     respond_to do |format| 
     format.html { redirect_to coding_skills_url } 
     format.js 
     end 
    end 
    end 

    def destroy 
    end 

    private 
    def recommendation_params 
    params.require(:recommendation).permit(:recommendation_content) 
    end 
end 

Маршруты

Rails.application.routes.draw do 

    root :to => "coding_skills#index" 
    devise_for :users 
    resources :posts 
    resources :coding_skills do 
    resources :projects 
    end 

    resources :recommendations 
end 

Просмотров # индекс

<%= render "best_of" %> 

_Best_of.html.erb

<div id="best_of"> 
    <h1>Recommendations for Cody</h1> 

    <p>Add a recommendation below!</p> 

    <% if current_user %> 
    <%= link_to "Add a recommendation", new_recommendation_path, class: "btn btn-success", remote: true %> 
    <% else %> 
    <p><%= link_to "Sign in to add a recommendation", new_user_session_path %></p> 
    <% end %> 



    <h3>Recommendations</h3> 
    <div id="recommendations"> 
    <% if @recommendations.any? %> 
     <%= render(@recommendations) %> 
    <% end %> 
    </div> 



    <%= link_to "Close", root_path, id: "hide_best_of", class: "btn btn-success" %> 

    </div> 

_form.html.erb

<div id="recommendation-header"> 
    <h3>Hey there, <%= current_user.email %>!</h3> 
</div> 

<%= bootstrap_form_for @recommendation, remote: true do |f| %> 
    <%= f.text_area :recommendation_content, label: "What do you like about Cody?" %> 
    <%= f.submit "Add recommendation", class: "btn btn-success" %> 
<% end %> 

Rake Маршруты

Prefix Verb URI Pattern             Controller#Action 
        root GET /               coding_skills#index 
     new_user_session GET /users/sign_in(.:format)         devise/sessions#new 
      user_session POST /users/sign_in(.:format)         devise/sessions#create 
    destroy_user_session DELETE /users/sign_out(.:format)         devise/sessions#destroy 
      user_password POST /users/password(.:format)         devise/passwords#create 
     new_user_password GET /users/password/new(.:format)        devise/passwords#new 
     edit_user_password GET /users/password/edit(.:format)        devise/passwords#edit 
          PATCH /users/password(.:format)         devise/passwords#update 
          PUT /users/password(.:format)         devise/passwords#update 
cancel_user_registration GET /users/cancel(.:format)          devise/registrations#cancel 
     user_registration POST /users(.:format)           devise/registrations#create 
    new_user_registration GET /users/sign_up(.:format)         devise/registrations#new 
    edit_user_registration GET /users/edit(.:format)          devise/registrations#edit 
          PATCH /users(.:format)           devise/registrations#update 
          PUT /users(.:format)           devise/registrations#update 
          DELETE /users(.:format)           devise/registrations#destroy 
        posts GET /posts(.:format)           posts#index 
          POST /posts(.:format)           posts#create 
       new_post GET /posts/new(.:format)          posts#new 
       edit_post GET /posts/:id/edit(.:format)         posts#edit 
        post GET /posts/:id(.:format)          posts#show 
          PATCH /posts/:id(.:format)          posts#update 
          PUT /posts/:id(.:format)          posts#update 
          DELETE /posts/:id(.:format)          posts#destroy 
    coding_skill_projects GET /coding_skills/:coding_skill_id/projects(.:format)   projects#index 
          POST /coding_skills/:coding_skill_id/projects(.:format)   projects#create 
new_coding_skill_project GET /coding_skills/:coding_skill_id/projects/new(.:format)  projects#new 
edit_coding_skill_project GET /coding_skills/:coding_skill_id/projects/:id/edit(.:format) projects#edit 
    coding_skill_project GET /coding_skills/:coding_skill_id/projects/:id(.:format)  projects#show 
          PATCH /coding_skills/:coding_skill_id/projects/:id(.:format)  projects#update 
          PUT /coding_skills/:coding_skill_id/projects/:id(.:format)  projects#update 
          DELETE /coding_skills/:coding_skill_id/projects/:id(.:format)  projects#destroy 
      coding_skills GET /coding_skills(.:format)         coding_skills#index 
          POST /coding_skills(.:format)         coding_skills#create 
     new_coding_skill GET /coding_skills/new(.:format)        coding_skills#new 
     edit_coding_skill GET /coding_skills/:id/edit(.:format)       coding_skills#edit 
      coding_skill GET /coding_skills/:id(.:format)        coding_skills#show 
          PATCH /coding_skills/:id(.:format)        coding_skills#update 
          PUT /coding_skills/:id(.:format)        coding_skills#update 
          DELETE /coding_skills/:id(.:format)        coding_skills#destroy 
      recommendations GET /recommendations(.:format)         recommendations#index 
          POST /recommendations(.:format)         recommendations#create 
     new_recommendation GET /recommendations/new(.:format)        recommendations#new 
     edit_recommendation GET /recommendations/:id/edit(.:format)       recommendations#edit 
      recommendation GET /recommendations/:id(.:format)        recommendations#show 
          PATCH /recommendations/:id(.:format)        recommendations#update 
          PUT /recommendations/:id(.:format)        recommendations#update 
          DELETE /recommendations/:id(.:format)        recommendations#destroy 
+0

1) какие кнопки «рекомендации» вы нажимаете (у вас есть несколько ссылок и кнопок, и ни один из них, похоже, просто не говорит «рекомендации» 2) используете ли вы хром и/или firefox? вы сделали щелчок правой кнопкой мыши и проверили страницу? что происходит на вкладке сети? как насчет консоли javascript? –

+0

Когда вы написали: «Когда я нажимаю кнопку« Рекомендации », вы ссылались на кнопку« Добавить рекомендацию »? –

+0

Прошу прощения за отсутствие информации. Да, я имел в виду кнопку «Добавить рекомендацию» в файле _best_of.html.erb. –

ответ

0

Ну, вам не хватает файл create.js.erb, который будет выглядеть примерно так:

$('#element_id').html("<%= escape_javascript(render 'your_partial') %>"); 

ELEMENT_ID является селектор html, который вы хотите заменить на своей странице. Это зависит от того, как выглядит ваш html и какую часть его вы хотите заменить во время вызова ajax.

Ваш_partial является частью, которую вы не предоставили.

Я думаю, вместо escape_javascript вы можете использовать только «j».

0

Я считаю, что этот вопрос находится на этой линии:

<%= link_to "Add a recommendation", new_recommendation_path, class: "btn btn-success", remote: true %> 

remote: true в конце вызывает запрос HTTP, чтобы быть sent as an AJAX request, with the Accept header requesting a JavaScript response.

Чтобы исправить это, попробуйте удалить remote: true. Затем следует выполнить перенаправление.