2016-03-23 4 views
0

Когда я нажимаю ссылку на удаление, это ничего не делает. Нет уведомления об ошибке. Я получил ответ здесь, чтобы изменить значение по умолчанию в application.html к применениюУдалить ссылку не работает в проекте Ruby on Rails?

<!DOCTYPE html> 
<html> 
<head> 
    <title>Blog</title> 
    <%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track' => true %> 
    <%= javascript_include_tag 'default', 'data-turbolinks-track' => true %> 
    <%= csrf_meta_tags %> 
</head> 
<body> 

<%= yield %> 

</body> 
</html> 

, когда я пытаюсь изменить этот параметр «по умолчанию», мой сбой приложения. Вот ошибка.

<!DOCTYPE html> 
    <html> 
    <head> 
     <title>Blog</title> 
     <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
     <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
     <%= csrf_meta_tags %> 
    </head> 
    <body> 

    <%= yield %> 

    </body> 
    </html> 

ExecJS :: ProgramError в сообщениях # индекс

Показаны C: /Sites/sample/blog/app/views/layouts/application.html.erb где строка # 5 поднятый: TypeError: Object не поддерживает это свойство или метод

Вот код на мой взгляд

<h1><%= @post.title %></h1> 

<div><%= @post.body %></div> 

<%= link_to 'Edit Post', edit_post_path(@post) %> 

<%= button_to 'Delete Post', post_path(@post), method: :delete, data: {confirm: 
    "Are you sure?"} %> 

подтверждение также не работает.

~~~ ~~~ CONTROLLER

class PostsController < ApplicationController 
    before_action :find_post, only: [:show, :edit, :update, :destroy] 
    def index 
    @posts = Post.all.order("created_at DESC") 
    end 

    def new 
    @post = Post.new 
    end 

    def create 
    @post = Post.new(post_params) 

    if @post.save 
     redirect_to @post 
    else 
     render 'new' 
    end 
    end 

    def show 
    end 

    def edit 
    end 

    def update 

    if @post.update(post_params) 
     redirect_to @post 
    else 
     render 'edit' 
    end 
    end 

    def destroy 
    @post.destroy 
    redirect_to root_path 
    end 

    private 

    def find_post 
    @post = Post.find(params[:id]) 
    end 

    def post_params 
    params.require(:post).permit(:title, :body) 
    end 
end 
+0

показать свой код контроллера ... и сказать, если вы используете драгоценный камень или нет? –

+0

Эта проблема возникает из-за того, что вы используете WINDOWS. Вы должны изменить ** приложение ** на ** по умолчанию **, чтобы избежать ** ExecJS :: ProgramError **. Но тогда ваши jquery и jquery_ujs не будут загружены, так как они требуются из вашего приложения.js. Я бы предложил вам перейти из системы WINDOWS или для обучения, вы можете использовать https://c9.io/ – dp7

+0

добавленный код контроллера. –

ответ

0

Удалить 'данных turbolinks-трек => правда' от javasript_include_tag из application.html.erb файла и сохранить только файл 'приложения' включены.

+0

Там еще ошибка .. ExecJS :: ProgramError в сообщениях # индекс Показаны C: /Sites/sample/blog/app/views/layouts/application.html.erb где строка # 5: поднятые TypeError: Object не поддерживает это свойство или метод Rails.root: C:/Sites/образец/блог Блог <% = stylesheet_link_tag 'приложения', средства массовой информации : ' все ',' data-turbolinks-track '=> true%> верно%> -> <% = javascript_include_tag 'приложения' %> <% = csrf_meta_tags%> <%= yield %> –

+0

Пожалуйста, убедитесь, что вы включили gem-gug в gemfile –

+0

Где я могу найти свой Gemfile? –

Смежные вопросы