我有一個問題,我的Ruby on Rails的Web應用程序。Rails的服務器響應404 /銷燬請求
我有一個名爲來源, 在我routes.rb中,我添加了以下配置的模型類:
namespace :admins do
resources :sources do
collection do
get 'batch_new'
post 'batch_create'
end
end
end
當我運行rake routes
,我可以看到:
admins_source GET /admins/sources/:id(.:format) admins/sources#show
PUT /admins/sources/:id(.:format) admins/sources#update
DELETE /admins/sources/:id(.:format) admins/sources#destroy
但是當我通過點擊鏈接或提交表單, 發送這些請求,我總是得到404
這裏是的意見/管理員/源代碼/ _form.html.erb
<%= form_for [:admins, @source] do |f| %>
<% if @source.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@source.errors.count, "error") %> prohibited this source from being saved:</h2>
<ul>
<% @source.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :url %>
<%= f.text_field :url %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
這裏是我的的代碼破壞的的意見/管理員/來源/ index.html的鏈接.erb:
<%= link_to 'Destroy', admins_source_url(source), method: :delete, data: { confirm: 'Are you sure?' } %>
這裏是在SourcesController
代碼def destroy
@source = Source.find(params[:id])
@source.destroy
respond_to do |format|
format.html { redirect_to admins_sources_url }
format.json { head :no_content }
end
end
此問題只發生在生產環境中。 開發環境就好。
我也沒有生產ENV資產預編譯開始我的服務器(麒麟)前。 我不知道如何解決這個問題。
這裏是我的環境:
操作系統:Ubuntu Linux操作系統的12.04 LTS
的Ruby版本:2.0.0-P0
的Rails版本:3.2.13
Rails的服務器:麒麟4.6。 2
生產數據庫:MySQL
數據庫發展:sqlite3的
你能發表表格代碼嗎? – John 2013-05-06 06:47:55
好的,我添加了一些可能導致此問題的代碼。 – Aetherus 2013-05-06 07:06:23
我也想過外鍵約束,MySQL有但sqlite沒有。但是,我在MySQL中查看了我的表,並沒有發現任何表中的外鍵。也許'rake db:migrate'不會創建任何實際的外鍵。 – Aetherus 2013-05-06 08:53:56