Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3.2中没有路由匹配错误_Ruby On Rails_Ruby On Rails 3_Routing_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails Rails 3.2中没有路由匹配错误

Ruby on rails Rails 3.2中没有路由匹配错误,ruby-on-rails,ruby-on-rails-3,routing,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Routing,Ruby On Rails 3.2,我得到以下错误 No route matches {:action=>"show", :controller=>"settings", :format=>nil} 在尝试实施设置/新建时 我的设置/new.html如下所示: <h1>New setting</h1> <%= form_for @setting do |f| %> <% if @setting.errors.any? %> <div id="

我得到以下错误

No route matches {:action=>"show", :controller=>"settings", :format=>nil}
在尝试实施设置/新建时

我的设置/new.html如下所示:

<h1>New setting</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 %> 
</br></br>


Id: <%= f.text_field :id %><br>
Name: <%= f.text_field :name %><br>

<%= f.submit "Create" %>&nbsp;&nbsp;

<% end %>
我的设置控制器:

class SettingsController < ApplicationController
  # GET /Settings
  # GET /Settings.json
  def index
    @settings = Setting.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @settings }
    end
  end

  # GET /Settings/1
  # GET /Settings/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 /Settings/new
  # GET /Settings/new.json
  def new
    @setting = Setting.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @setting }
    end
  end

  # GET /Settings/1/edit
  def edit
    @setting = Setting.find(params[:id])
  end

  # POST /Settings
  # POST /Settings.json
  def create
    @setting = Setting.new(params[:setting])

    respond_to do |format|
      if @Setting.save
        format.html { redirect_to @setting, notice: 'Lov value 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 /Settings/1
  # PUT /Settings/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: 'Lov value 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 /Settings/1
  # DELETE /Settings/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

请检查并通知我。

成功保存后,您的
创建
操作将重定向到
显示

但是,您的
routes.rb
没有
Show
的条目,即使您的控制器有
Show
方法


你能试着运行这个命令吗?这将列出rails应用程序的所有有效路由。

您只需使用资源:路由文件中的设置和rails RESTFUL路由将处理所有问题。您不需要显式地声明restful路由的HTTP谓词。

另外,在控制器的创建和更新操作中,使用@setting而不是@setting。

您是否使用了“rails生成脚手架设置”命令?@ajt是的,我使用了该命令。@SrikanthVenugopalan我已编辑了该问题,请检查并告知我。请检查并告知我know@PeeVee,我正在调查,我怀疑某个地方有一个打字错误(可能是复数),我想猜猜是哪里。如果我有代码可以使用,可能会更容易。首先猜测-在您的创建中,if块具有
@设置。使用大写字母“S”保存
。您能否尝试保存
@设置
?在哪一行出现错误?我怀疑
@设置
会给您带来问题。堆栈跟踪可能更好。
class SettingsController < ApplicationController
  # GET /Settings
  # GET /Settings.json
  def index
    @settings = Setting.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @settings }
    end
  end

  # GET /Settings/1
  # GET /Settings/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 /Settings/new
  # GET /Settings/new.json
  def new
    @setting = Setting.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @setting }
    end
  end

  # GET /Settings/1/edit
  def edit
    @setting = Setting.find(params[:id])
  end

  # POST /Settings
  # POST /Settings.json
  def create
    @setting = Setting.new(params[:setting])

    respond_to do |format|
      if @Setting.save
        format.html { redirect_to @setting, notice: 'Lov value 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 /Settings/1
  # PUT /Settings/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: 'Lov value 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 /Settings/1
  # DELETE /Settings/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
               add_settings POST   /settings/:id/add(.:format)            settings#add

            remove_settings POST   /settings/:id/remove(.:format)         settings#remove

       settings_id_settings GET    /settings/:id/settings_id(.:format)    settings#settings_id

         add_settings_index GET    /settings/add(.:format)                settings#add

        list_settings_index GET    /settings/list(.:format)               settings#index

get_settings_settings_index POST   /settings/get_settings(.:format)       settings#get_settings

                           GET    /settings/get_settings(.:format)     settings#get_settings

                            GET    /settings(.:format)                    settings#index

                            POST   /settings(.:format)                    settings#create

                            GET    /settings/new(.:format)                settings#new

                            GET    /settings/:id/edit(.:format)           settings#edit

                            GET    /settings/:id(.:format)                settings#show

                            PUT    /settings/:id(.:format)                settings#update

                            DELETE /settings/:id(.:format)                settings#destroy

                            GET    /settings(.:format)                    settings#index

                            POST   /settings(.:format)                    settings#create

                            GET    /settings/new(.:format)                settings#new

                            GET    /settings/:id/edit(.:format)           settings#edit

                            GET    /settings/:id(.:format)                settings#show

                            PUT    /settings/:id(.:format)                settings#update

                            DELETE /settings/:id(.:format)                settings#destroy