我是红宝石和网络开发的新手,我已经搜索了很多这个问题,但我还是没想到。
我有一个按钮:
<button type="button" class="btn btn-primary" onclick="add()">Add</button>
调用 AJAX函数:
<script>
function add() {
$.ajax({
type : "get",
url : "civil_defence_alerts/checkError",
data: null,
success: function (data) {
alert(data);
}
}
)
}
</script>
在我的&#34; civil_defence_alerts_controller &#34;我定义了一个名为 check_error 的方法:
def check_error
#Some code...
end
现在,当我点击按钮时ajax调用失败,因为找不到check_error方法(错误404),我尝试了不同的 routes.rb配置 ......这让我发疯了!
谢谢你们,对不起我的英语:D
编辑,我的routes.rb:
MyApp::Application.routes.draw do
mount Ckeditor::Engine => '/ckeditor'
get 'site/index'
apipie
mount Browserlog::Engine => '/logs'
get "home/index"
devise_for(:users, :controllers => {
:passwords => 'password'})
devise_for(:admins,
controllers: {registrations: 'admins/registrations'})
match 'admin', to: "admin/municipalities#index", via: [:get, :post]
resources :calendars
resources :garbage
resources :news, only: :show
resources :events, only: :show
resources :municipalities
resources :editable_strings
get 'misc/password_reset'
namespace :admin do
get 'superadmin_dashboard/index'
get 'superadmin_dashboard/activities'
get 'superadmin_dashboard/issues'
root to: 'dashboard#index'
resources :push_notifications, only: [:index, :show]
resources :rss_importer_logs, only: [:index, :show]
resources :poi_importer_logs, only: [:index, :show]
resources :features do
resources :strategies
end
resources :api_call_logs, only: [:index, :show]
require 'sidekiq/web'
require 'sidekiq/cron/web'
# require 'sidetiq/web'
authenticate :admin do
mount Sidekiq::Web => '/workers'
end
get 'dashboard/index'
get 'misc/test_notification'
post 'misc/test_notification_send'
resources :documents
resources :frontends, except: [:show, :destroy]
resources :operators
resources :users, only: [:index, :show, :destroy]
resources :municipalities do
resources :attachments do
collection do
get 'tinymce'
post 'tinymce'
end
end
get 'dashboard/index'
post 'dashboard/more_information'
collection do
get 'activate_municipality'
post 'activate'
end
member do
get 'suspend'
get 'reactivate'
end
resources :admins do
member do
get 'log'
get 'logs'
end
end
resources :calendar_types
resources :calendars do
resources :garbage_category_rules
member do
get 'manage'
get 'occurrences'
get 'download'
end
end
resources :civil_defence_alerts do
collection do
post 'update_alert'
post 'add_alert'
get 'get_alerts'
end
end
resources :civil_defence_phone_numbers
resources :civil_defence_informations
resources :documents
resources :events do
member do
get 'push_modal'
post 'push'
end
end
resources :event_categories, except: [:show]
resources :ckan_resources, except: [:show] do
resources :ckan_resource_logs, only: [:index]
member do
get 'run'
end
end
resources :garbage
resources :garbage_categories
resources :garbage_collections
resources :issues do
resources :issue_comments
resources :issue_emails
collection do
get 'export'
end
member do
delete 'really_delete'
get 'restore'
get 'unlink'
end
end
resources :issue_statistics, only: [:index]
resources :logs, :only => [:index, :show]
resources :menus, :only => [] do
resources :menu_items do
collection do
post 'update_order'
end
end
end
resources :municipality_services, except: [:show]
resources :site_menus, :only => [] do
resources :site_menu_items do
collection do
post 'update_order'
end
end
end
resources :municipality_sections, :only => [:index, :edit, :update]
resources :municipality_settings, :only => [:index, :edit, :update]
resources :news do
member do
get 'push_modal'
post 'push'
end
collection do
get 'update_from_feed'
end
end
resources :issue_categories
resources :news_categories
resources :point_of_interests
resources :point_of_interest_categories
resources :point_of_interest_categorie_with_childrens
resources :pages do
collection do
post 'update_order'
end
end
resources :site_pages do
collection do
post 'update_order'
end
end
resources :recycling_areas
resources :site_blocks do
collection do
post 'update_order'
post 'set_preferences'
end
end
resources :site_header_images do
collection do
post 'update_order'
end
end
resources :site_settings, :only => [:index, :edit, :update] do
collection do
get 'remove_site_logo'
end
end
resources :sponsors
resources :subdomains
resources :surveys
resources :tags, only: [:index]
resources :zones
end
resources :calendar_type_icons
resources :garbage_category_icons
resources :point_of_interest_category_icons
resources :provinces, only: [:index, :edit, :update]
resources :regions, only: [:index, :edit, :update]
end
# API Access
namespace :api, :defaults => {:format => 'json'} do
scope "(:frontend)", frontend: /site|tourism|municipium/, defaults:
{frontend: 'municipium'} do
api_version(:module => "v1", :path => {:value => "v1"}, :defaults =>
{:format => "json"}, :default => true) do
devise_for(:users, :controllers => {:sessions =>
"api/v1/sessions",
:registrations =>
"api/v1/registrations"})
resources :calendar_types, :only => [:index]
resources :calendars, :only => [:index, :show] do
collection do
get 'last_update'
end
member do
get 'last_update'
end
end
resources :devices, :only => [:index, :show] do
collection do
post 'remove'
post 'add'
post 'replace'
get 'count'
post 'update'
end
end
resources :garbage_categories, :only => [:index, :show] do
collection do
get 'last_update'
end
end
resources :garbage_collections, :only => [:index]
resources :garbage_subscriptions, :only => [:index] do
collection do
post 'remove'
post 'add'
end
end
resources :events, :only => [:index, :show]
resources :event_categories, :only => [:index, :show]
resources :issues
resources :issue_categories, :only => [:index]
resources :municipalities, :only => [:index, :show]
resources :municipality_subscriptions, :only => [:index] do
collection do
post 'add'
post 'remove'
post 'set_as_primary'
end
end
resources :news_categories, :only => [:index, :show]
resources :news_subscriptions, :only => [:index] do
collection do
post 'remove'
post 'add'
end
end
resources :news, :only => [:index, :show]
resources :pages, :only => [:index, :show]
resources :point_of_interest_categorie_with_childrens
resources :point_of_interest_categories, :only => [:index] do
resources :point_of_interests, :only => [:index, :show]
end
resources :point_of_interests, :only => [:index, :show]
resources :recycling_areas, :only => [:index, :show]
resources :user_profile, :only => [:index, :show] do
collection do
post 'destroy_user'
post 'reset_password'
post 'update_details'
post 'get_details'
post 'meta_login'
post 'change_password'
post 'facebook_login'
post 'remove'
end
end
resources :sponsors, only: [:index, :show], defaults: {format: 'json'}
resources :surveys do
member do
get 'get_questions'
post 'vote'
end
end
resources :zones, :only => [:index, :show]
end
api_version(:module => "v2", :path => {:value => "v2"}, :defaults => {:format => "json"}) do
devise_for(:users, :controllers => {:sessions => "api/v2/sessions",
:registrations => "api/v2/registrations"})
resources :admins, only: [:index] do
collection do
post 'auth'
end
end
resources :calendars, :only => [:index, :show] do
collection do
get 'last_update'
end
member do
get 'last_update'
end
end
resources :civil_defence_alerts, only: [:index]
resources :civil_defence_informations, only: [:index, :show]
resources :civil_defence_levels, only: [:index, :show]
resources :civil_defence_phone_numbers, only: [:index]
resources :devices, :only => [:index, :show] do
collection do
get 'remove'
post 'remove'
post 'add'
post 'replace'
get 'count'
post 'update'
post 'device_cleanup'
end
end
resources :garbages, :only => [:index] do
collection do
get 'last_update'
end
end
resources :garbage_categories, :only => [:index, :show] do
collection do
get 'last_update'
end
end
resources :garbage_collections, :only => [:index]
resources :garbage_subscriptions, :only => [:index, :update] do
collection do
post 'remove'
get 'remove'
post 'add'
end
end
resources :events, :only => [:index, :show]
resources :event_categories, :only => [:index, :show] do
resources :events, only: [:index, :show]
end
resources :issues do
collection do
get 'migrate'
end
end
resources :issue_categories, :only => [:index]
resources :tags, :only => [:index]
resources :issue_statistics, :only => [:index]
resources :menus, only: [:index, :show]
resources :site_menus, only: [:index, :show]
resources :municipalities, :only => [:index, :show] do
collection do
get 'find_by_subdomain'
end
end
resources :municipality_services, only: [:index]
resources :municipality_subscriptions, :only => [:index] do
collection do
post 'add'
post 'remove'
post 'set_as_primary'
end
end
resources :news_categories, :only => [:index, :show] do
resources :news, only: [:index, :show]
end
resources :news_subscriptions, :only => [:index] do
collection do
post 'remove'
post 'add'
end
end
resources :news, :only => [:index, :show]
resources :pages, :only => [:index, :show]
resources :site_pages, :only => [:index, :show]
resources :point_of_interest_categorie_with_childrens
resources :point_of_interest_categories, :only => [:index] do
resources :point_of_interests, :only => [:index, :show]
end
resources :point_of_interests, :only => [:index, :show]
resources :public_offices, only: [:index]
resources :recycling_areas, :only => [:index, :show]
resources :site_blocks, only: [:index, :show]
resources :site_header_images, only: [:index]
resources :searches, only: [] do
collection do
post 'search'
get 'search'
end
end
resources :user_profile, :only => [:index, :show] do
collection do
post 'destroy_user'
post 'reset_password'
post 'update_details'
post 'get_details'
post 'meta_login'
post 'change_password'
post 'social_login'
post 'remove'
post 'update_access'
end
end
resources :sponsors, only: [:index, :show], defaults: {format: 'json'}
resources :surveys do
member do
get 'get_questions'
post 'vote'
end
collection do
get 'migrate'
end
end
end
end
end
end
答案 0 :(得分:4)
为check_error方法添加相应的路由:
resources :civil_defence_alerts do
collection do
...
get 'check_error'
end
end
在您的请求中,您需要传递相应的路由URI(正如您在ajax函数的url选项中定义的那样),例如:
function add() {
$.ajax({
url: 'civil_defence_alerts/check_error',
success: function (data) {
alert(data)
}
})
}
请注意,如果请求是GET,则无需指定。