ruby-on-rails – rails 3.2中的奇怪路由错误
发布时间:2020-12-17 02:04:36 所属栏目:百科 来源:网络整理
导读:我正在实现一个应用程序,我想在其中更改应用程序的设置. 这样做我得到一个错误 no routes matches {:action="show",:controller="settings",format="nil"} 点击打开的新设置标签. 我的index.html如下: – h1Listing settings/h1table class="table table-st
我正在实现一个应用程序,我想在其中更改应用程序的设置.
这样做我得到一个错误 no routes matches {:action=>"show",:controller=>"settings",format=>"nil"} 点击打开的新设置标签. 我的index.html如下: – <h1>Listing settings</h1> <table class="table table-striped table-bordered"> <tr> <th>ID</th> <th>Name</th> <th>Value</th> <th>Description</th> <th>Edit</th> <th>Delete</th> </tr> <% @settings.each do |c| %> <tr> <td><%= c.id %> </td> <td><%= c.name %> </td> <td><%= c.value %> </td> <td><%= c.description %> </td> <td><%= link_to 'Edit',{:action => 'edit',:id => c.id} %> </td> <td><%= link_to 'Delete',{:action => 'delete',:id => c.id},:data => { :confirm => "Are you sure you want to delete this value?" } %></td> </tr> <% end %> </table> <br /> <%= link_to 'New Setting',{:action => 'new'} %> 我的设置控制器如下: – class SettingsController < ApplicationController # GET /setting # GET /setting.json def index @settings = Setting.all respond_to do |format| format.html # index.html.erb format.json { render json: @settings } end end # GET /setting/1 # GET /setting/1.json def show @setting = Setting.find(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @setting } end end # GET /setting/new # GET /setting/new.json def new @setting = Setting.new respond_to do |format| format.html # new.html.erb format.json { render json: @setting } end end # GET /setting/1/edit def edit @setting = Setting.find(params[:id]) end # POST /setting # POST /setting.json def create @setting = Setting.new(params[:setting]) respond_to do |format| if @setting.save format.html { redirect_to @setting,notice: 'Setting was successfully created.' } format.json { render json: @setting,status: :created,location: @setting } else format.html { render action: "new" } format.json { render json: @setting.errors,status: :unprocessable_entity } end end end # PUT /setting/1 # PUT /setting/1.json def update @setting = Setting.find(params[:id]) respond_to do |format| if @setting.update_attributes(params[:setting]) format.html { redirect_to @setting,notice: 'Setting was successfully updated.' } format.json { head :no_content } else format.html { render action: "edit" } format.json { render json: @setting.errors,status: :unprocessable_entity } end end end # DELETE /setting/1 # DELETE /setting/1.json def delete @setting = Setting.find(params[:id]) @setting.deleted = 1 @setting.save respond_to do |format| format.html { redirect_to settings_url } format.json { render :json => { :success => true } } end end end 我的new.html如下: – <h1>New settings</h1> <%= form_for @setting do |f| %> <% if @setting.errors.any? %> <div id="errorExplanation"> <h2><%= pluralize(@setting.errors.count,"error") %> prohibited this setting from being saved:</h2> <ul> <% @setting.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> Id: <%= f.text_field :id %><br> Name: <%= f.text_field :name %><br> Values: <%= f.text_field :value %><br> Description: <%= f.text_field :description %><br> <% end %> <%= link_to 'Back',settings_path %> 我的routes.rb如下: – Lms::Application.routes.draw do resources :books do member do post 'add' post 'remove' end collection do get 'add' get 'list' => "books#index" post 'get_books' get 'get_books' end end resources :books resources :book_transactions resources :book_issues resources :book_holds resources :categories resources :users resources :admins resources :library_locations resources :lov_values resources :loan_fines resources :lov_names resources :loans_fines do member do post 'add' post 'remove' end collection do get 'add' get 'list' post 'get_loans_fines' get 'get_loans_fines' end end resources :settings do member do post 'add' post 'remove' end collection do get 'add' get 'list' post 'get_settings' get 'get_settings' end end root :to => 'books#index' match ':controller(/:action(/:id))(.:format)' 奇怪的是,当我点击新动作时它会/重定向到show动作..我有点困惑为什么会发生这种情况.. 有人可以帮我弄这个吗.. 解决方法
要检查您的路线,您可以运行
检查您是否正确定义了路线.我也建议使用 <%= link_to "New Setting",new_setting_pah %> 对于您的路由定义,您没有定义除添加或删除之外的其他方法的路由. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |