我从网站上抓取产品并将其插入我的数据库。所有产品都在我的“查看”页面上正确列出,但我似乎无法使用删除按钮。我的佣金路线中有重复的原因是我最初手动写出路线然后使用
resources :ibotta
我刚尝试移动资源:ibotta"在路线的顶部,但这不起作用。当我点击" Destroy"按钮,它带我的链接是
" https://rails-tutorial2-chriscma.c9users.io/ibotta.14738"
非常感谢任何帮助,谢谢。
查看
<h1>Show Page for iBotta</h1>
<h3><%= @products.length %> products in the iBotta DB</h3>
<% @products.each do |x| %>
<p>Title: <a href=<%=x.link%>><%= x.title %></a> </p>
<p>Value: <%= x.values %> </p>
<p>Store: <%= x.store %> </p>
<%= link_to 'Destroy', ibotta_path(x.id),
method: :delete %>
<% end %>
控制器中的方法
def destroy
Ibotta.find(params[:id]).destroy
redirect_to ibotta_path
end
Rake Routes
ibotta_save GET /ibotta/save(.:format) ibotta#save
ibotta_show GET /ibotta/show(.:format) ibotta#show
ibotta_delete GET /ibotta/delete(.:format) ibotta#delete
ibotta GET /ibotta(.:format) ibotta#index
POST /ibotta(.:format) ibotta#create
new_ibottum GET /ibotta/new(.:format) ibotta#new
edit_ibottum GET /ibotta/:id/edit(.:format) ibotta#edit
ibottum GET /ibotta/:id(.:format) ibotta#show
PATCH /ibotta/:id(.:format) ibotta#update
PUT /ibotta/:id(.:format) ibotta#update
DELETE /ibotta/:id(.:format) ibotta#destroy
答案 0 :(得分:1)
尝试传递您的对象并使用delete方法发出DELETE请求,例如:
<% @products.each do |product| %>
<p>Title: <%= link_to product.title, product.link %></p>
<p>Value: <%= product.values %></p>
<p>Store: <%= product.store %></p>
<%= link_to 'Destroy', product, method: :delete %>
<% end %>
如果要创建a
标记,您可以使用link_to
Rails帮助程序。
正如我在您的项目中看到的那样,您没有layouts/application.html.erb
文件,这就是为什么您呈现的所有内容都不会通过此文件中的yield
的原因,你并没有在application.js或css文件中添加任何内容,因此,你没有jQuery或jQuery UJS。这使得每次单击锚标记以删除此元素时,无论您是否指定要使用的方法,都要执行GET请求。
这可以通过添加文件夹和文件来解决,就像任何项目一样,使用初始结构:
<!DOCTYPE html>
<html>
<head>
<%= 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>
请注意,如果您这样做,则需要对javascripts/ibotta.coffee
中的内容发表评论,否则您将收到错误消息:
SyntaxError:[stdin]:6:8:意外@
我不确定原因。
或者,如果您希望在没有此文件的情况下继续(我不建议这样做),您可以轻松地更改link_to
帮助程序,对于button_to
帮助程序,例如:
<%= button_to 'Destroy', x, method: :delete %>
什么&#39; ll将提供不同的html结构,但是可以删除记录:
<form class="button_to" method="post" action="/ibotta/id">
<input type="hidden" name="_method" value="delete">
<input type="submit" value="Destroy">
<input type="hidden" name="authenticity_token" value="token">
</form>
请注意,您的控制器中有一个销毁和删除方法,我想您需要的是destroy
,resources
路径会使用该方法。
Here是您可以看到它正常运行的存储库。