application.html.erb第6行引发:TypeError:Ruby on rails

Fcz*_*rdo 1 ruby ruby-on-rails ruby-on-rails-3

我面临以下错误消息:

在Restaurantes#index中的ExecJS :: ProgramError显示C:/rubyProject/vota_prato/app/views/layouts/application.html.erb其中>第6行引发:

TypeError:Oobjetonãadásuportepara a propriedadeoumétodoRails.root:C:/ ruby​​Project/vota_prato

应用程序跟踪| 框架跟踪| 完整跟踪应用/视图/布局/ application.html.erb:6:in>`_app_views_layouts_application_html_erb__971963449_62998908'请求

我修复它删除线:

真%>

来自我的app/views/layouts/application.html.erb文件

在我做完之后,我遇到了另一个问题=(.我在一个控制器上创建了一个动作销毁:

class RestaurantesController < ApplicationController
    def destroy
        @restaurante = Restaurante.find(params[:id])
        @restaurante.destroy
        redirect_to(action: "index")
    end

    def index
        @restaurantes = Restaurante.all
    end

    def show
        @restaurante = Restaurante.find(params[:id])
    end
end
Run Code Online (Sandbox Code Playgroud)

和我的index.html.rb文件:

<h1>Listagem de Restaurantes</h1>

<table>
  <tr>
    <th>ID</th>
    <th>Nome</th>
    <th>Endereço</th>
    <th>Especialidade</th>
  </tr>

<% @restaurantes.each do |restaurante| %>
  <tr>
    <td><%= restaurante.id %></td>
    <td><%= restaurante.nome %></td>
    <td><%= restaurante.endereco %></td>
    <td><%= restaurante.especialidade %></td>
    <td><%= link_to 'Mostrar', action: 'show', id: restaurante %></td>
    <td>--</td>
    <td><%= link_to 'Deletar', {action: 'destroy', id: restaurante},{method: "delete"} %></td>
  </tr>
<% end %>
</table>
Run Code Online (Sandbox Code Playgroud)

当点击Deletar链接时,它执行与Show动作相同的动作,我不知道为什么

小智 7

为了解决在Windows ExecJS问题,参数改变application,以default在线路5和6的视图/布局/ aplication.html.erb文件.

该文件应如下所示:

<%= stylesheet_link_tag    'default', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'default', 'data-turbolinks-track' => true %>
Run Code Online (Sandbox Code Playgroud)

这对我有用.


mld*_*car 5

首先,如果我的英语太糟糕,我很抱歉......这个错误几个月前发生在我身上。安装 ruby​​、rails gem 或任何其他 gem 都没有问题。

这些是我的规格:

  • 运行 Windows 10
  • 使用 RubyInstaller 3.2.0,包含的软件包有:
    • 红宝石2.2.4
    • 轨道 4.2
    • 捆绑器
    • git
    • sqlite
    • 小TDS
    • SQL 服务器支持
    • 开发套件

安装RubyInstaller后,我创建了一个新项目,但我遇到了和你一样的错误:

ExecJS::ProgramError in home#index Showing C:/ruby_project/app/views/layouts/application.html.erb where line #6 raised:
TypeError: Object doesn't support this property or method
Run Code Online (Sandbox Code Playgroud)

确定的解决方案是:

  1. 停止任何 Rails Web 服务器。
  2. 关闭一切。
  3. 打开您的 Web 浏览器并浏览 NodeJS 下载包网站,或者您可以从此处下载: 下载链接 (Windows)
  4. 在您的操作系统上安装nodejs。即使您运行的是 64 位,也请安装 32 位版本。
  5. 重新启动计算机,打开所需项目的命令行,然后运行“rails server”。
  6. 完成...不需要更改 app/views/layouts/application.html.erb 上的任何内容。它会起作用...只需默认即可:

ExecJS::ProgramError in home#index Showing C:/ruby_project/app/views/layouts/application.html.erb where line #6 raised:
TypeError: Object doesn't support this property or method
Run Code Online (Sandbox Code Playgroud)

注意:对于linux/mac用户,只需通过RVM(Ruby版本管理器)安装ruby和rails即可。你不会有任何问题,我以经验告诉你。

要在您的 linux/mac 终端上安装 RVM,我将向您推荐以下这些教程。我已经尝试过它们并且有效!

请评论这是否对您有用...

问候。