我遇到以下错误消息:
在Restaurantes#index中的ExecJS :: ProgramError 显示C:/rubyProject/vota_prato/app/views/layouts/application.html.erb其中>第6行引发:
TypeError:Oobjetonãadásuportepara a propriedadeoumétodo Rails.root:C:/ rubyProject / vota_prato
应用程序跟踪|框架跟踪|完整追踪 app / views / layouts / application.html.erb:6:in>`_app_views_layouts_application_html_erb__971963449_62998908' 请求
我修理了删除行:
true%>
来自我的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
和我的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>
点击Deletar链接时,它执行与Show动作相同的动作,我不知道为什么
答案 0 :(得分:7)
要解决Windows中的ExecJS问题,请在 views / layouts / aplication.html.erb 文件的第5行和第6行中将参数application
更改为default
。
该文件应如下所示:
<%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'default', 'data-turbolinks-track' => true %>
这对我有用。
答案 1 :(得分:3)
首先,如果情况太糟糕,我很抱歉。 几个月前我发生了这个错误。没有安装ruby,rails gem或任何其他宝石的问题。
这些是我的规格:
在打开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
明确的解决方案是:
<!DOCTYPE html>
<html>
<head>
<title>Sample</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>
&#13;
注意:对于linux / mac用户,只需通过RVM(Ruby Version Manager)安装ruby和rails。你没有遇到任何问题,我是根据经验告诉你的。
要在linux / mac终端上安装RVM,我将向您推荐以下教程。我试过了,他们工作了!
如果这对你有用,请评论......
问候。
答案 2 :(得分:1)
由于信息不足,无法说明您的JS问题。
至于链接部分,您的删除链接应如下所示:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup viewGroup, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_sourceitem_list, viewGroup, false);
// ...
return mView;
}
另外,请确保<%= link_to 'Deletar', restaurante_path(restaurante), method: :delete %>
中包含jquery-ujs
(这是您理解链接中的application.js
部分并发布表单而不是GET一页的内容)
BTW,不要在一个问题中提出两个问题。分别提出问题。
答案 3 :(得分:1)
您需要安装nodejs来融合涡轮机; )
答案 4 :(得分:0)
您是否取消注释该行:
if(!empty($images)){
//code
}
你的gemfile中的?这样做,运行“捆绑安装”,然后再试一次。 delete方法依赖于一些Javascript。这是rubyracer或者你可以使用的一些nodejs,我无法重新调用它的名称。
答案 5 :(得分:0)
谢谢,它有效,但我认为它有效,因为我安装了nodeJS。重新启动计算机后,无论两种解决方案都有效