2015-09-10 56 views
0

我在Rails应用程序的工作与嵌套表格等..每一件事情,直到我添加了一个按钮,尝试新线项目添加到形式运作良好。该布局是一种用户可以创建一个GeneralReport,一旦在GeneralReport里面,他们可以添加一个Report Entry(GenRepEnt),但是当我添加按钮时,我得到以下错误。的ActiveRecord :: RecordNotFound问题的Rails 4

的ActiveRecord :: RecordNotFound在 GeneralReports :: GenRepEntsController#新

编辑#1的功能在控制台和剂量的作品,结果填充在本地应用..

有问题的链接?是

<%= link_to "New Report Entry", new_general_report_gen_rep_ent_path(@gen_rep_ents) %> 

的控制器GenRepEnts如下:

class GeneralReports::GenRepEntsController < ApplicationController 
    before_action :set_gen_rep_ent, only: [:show, :edit, :update, :destroy] 

    # GET /gen_rep_ents 
    # GET /gen_rep_ents.json 
    def index 
    @gen_rep_ents = GenRepEnt.all 
    end 

    # GET /gen_rep_ents/1 
    # GET /gen_rep_ents/1.json 
    def show 
    end 

    # GET /gen_rep_ents/new 
    def new 
    @general_report = GeneralReport.find(params[:general_report_id]) 
    @gen_rep_ent = GenRepEnt.new 
    end 

    # GET /gen_rep_ents/1/edit 
    def edit 
    end 

    # POST /gen_rep_ents 
    # POST /gen_rep_ents.json 
    def create 
    @general_report = GeneralReport.find(params[:general_report_id]) 
    @gen_rep_ent = GenRepEnt.new(gen_rep_ent_params) 
    @gen_rep_ent.general_report_id = @general_report.id 

    respond_to do |format| 
     if @gen_rep_ent.save 
     format.html { redirect_to @general_report, notice: 'General Report Entry was successfully created.' } 
     format.json { render :show, status: :created, location: @general_report} 
     else 
     format.html { render :new } 
     format.json { render json: @general_report.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PATCH/PUT /gen_rep_ents/1 
    # PATCH/PUT /gen_rep_ents/1.json 
    def update 
    respond_to do |format| 
     if @gen_rep_ent.update(gen_rep_ent_params) 
     format.html { redirect_to @gen_rep_ent, notice: 'General Report Entry was successfully updated.' } 
     format.json { render :show, status: :ok, location: @gen_rep_ent } 
     else 
     format.html { render :edit } 
     format.json { render json: @gen_rep_ent.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /gen_rep_ents/1 
    # DELETE /gen_rep_ents/1.json 
    def destroy 
    @gen_rep_ent.destroy 
    respond_to do |format| 
     format.html { redirect_to gen_rep_ents_url, notice: 'General Report Entry was successfully destroyed.' } 
     format.json { head :no_content } 
    end 
    end 

    private 
    # Use callbacks to share common setup or constraints between actions. 
    def set_gen_rep_ent 
     @gen_rep_ent = GenRepEnt.find(params[:id]) 
    end 

    # Never trust parameters from the scary internet, only allow the white list through. 
    def gen_rep_ent_params 
     params.require(:gen_rep_ent).permit(:time, :report, :general_report) 
    end 
end 

我GeneralReport型号:

class GeneralReport < ActiveRecord::Base 

    # Adds Model Relationships 

    ## GeneralReport -> GenRepEnt 
    has_many :gen_rep_ents, dependent: :destroy 
end 

我GenRepEnt型号:

class GenRepEnt < ActiveRecord::Base 

    belongs_to :general_report 

end 

这是路线。 rb文件:

Rails.application.routes.draw do 

    resources :general_reports do 
    resources :gen_rep_ents, except: [:index], controller: 'general_reports/gen_rep_ents' 
    end 

end 

而只是柜面这里是嵌套的路线

general_report_gen_rep_ents POST /general_reports/:general_report_id/gen_rep_ents(.:format)   general_reports/gen_rep_ents#create 
new_general_report_gen_rep_ent GET /general_reports/:general_report_id/gen_rep_ents/new(.:format)  general_reports/gen_rep_ents#new 
edit_general_report_gen_rep_ent GET /general_reports/:general_report_id/gen_rep_ents/:id/edit(.:format) general_reports/gen_rep_ents#edit 
    general_report_gen_rep_ent GET /general_reports/:general_report_id/gen_rep_ents/:id(.:format)  general_reports/gen_rep_ents#show 
           PATCH /general_reports/:general_report_id/gen_rep_ents/:id(.:format)  general_reports/gen_rep_ents#update 
           PUT /general_reports/:general_report_id/gen_rep_ents/:id(.:format)  general_reports/gen_rep_ents#update 
           DELETE /general_reports/:general_report_id/gen_rep_ents/:id(.:format)  general_reports/gen_rep_ents#destroy 

我道歉,如果这是一个简单的问题耙/路线,但它可能只是我还需要第二双眼睛就可以了因为我一直在把它放在一些长时间..所有的帮助,非常感谢!让我知道是否需要更多信息。提供

编辑#2

服务器日志:

Started GET "/general_reports/%23%3CGenRepEnt::ActiveRecord_Associations_CollectionProxy:0x007fa547608f30%3E/gen_rep_ents/new" for ::1 at 2015-09-10 02:01:04 -0600 
    ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations" 
Processing by GeneralReports::GenRepEntsController#new as HTML 
    Parameters: {"general_report_id"=>"#<GenRepEnt::ActiveRecord_Associations_CollectionProxy:0x007fa547608f30>"} 
    GeneralReport Load (0.3ms) SELECT "general_reports".* FROM "general_reports" WHERE "general_reports"."id" = $1 LIMIT 1 [["id", 0]] 
Completed 404 Not Found in 22ms (ActiveRecord: 2.9ms) 

ActiveRecord::RecordNotFound (Couldn't find GeneralReport with 'id'=#<GenRepEnt::ActiveRecord_Associations_CollectionProxy:0x007fa547608f30>): 
    app/controllers/general_reports/gen_rep_ents_controller.rb:17:in `new' 


    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_source.erb (10.4ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (4.5ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.3ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (67.1ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_markup.html.erb (0.8ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.8ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.7ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.8ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/console.js.erb within layouts/javascript (46.0ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/main.js.erb within layouts/javascript (0.6ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/error_page.js.erb within layouts/javascript (1.3ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/index.html.erb (108.5ms) 


Started GET "/general_reports/%23%3CGenRepEnt::ActiveRecord_Associations_CollectionProxy:0x007fa547608f30%3E/gen_rep_ents/new" for ::1 at 2015-09-10 02:01:04 -0600 
Processing by GeneralReports::GenRepEntsController#new as HTML 
    Parameters: {"general_report_id"=>"#<GenRepEnt::ActiveRecord_Associations_CollectionProxy:0x007fa547608f30>"} 
    GeneralReport Load (0.2ms) SELECT "general_reports".* FROM "general_reports" WHERE "general_reports"."id" = $1 LIMIT 1 [["id", 0]] 
Completed 404 Not Found in 2ms (ActiveRecord: 0.2ms) 

ActiveRecord::RecordNotFound (Couldn't find GeneralReport with 'id'=#<GenRepEnt::ActiveRecord_Associations_CollectionProxy:0x007fa547608f30>): 
    app/controllers/general_reports/gen_rep_ents_controller.rb:17:in `new' 


    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_source.erb (6.0ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (3.4ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.1ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (54.8ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_markup.html.erb (0.5ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.5ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.6ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.7ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/console.js.erb within layouts/javascript (43.2ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/main.js.erb within layouts/javascript (0.7ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.9ms) 
    Rendered /Users/TaurenLTD1/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/index.html.erb (96.0ms) 
+0

请缩短你的代码,所以你需要帮助的可以快速查看有关问题的releavant东西的人:放只有使用的路由,只有另一端控制器 – Meier

+0

中的相关操作,查看日志或控制台,并复制导致错误的参数散列。 – Meier

+0

完成。我已经削减了很多脂肪..我习惯于被要求更多,所以我想我会提供所有我想到的..我的道歉使眼睛流血。 –

回答

1

的新方法,需要找到父母总报告。所以链接路径需要包含父对象的id。

因此,不是这样的:

<%= link_to "New Report Entry", new_general_report_gen_rep_ent_path(@gen_rep_ents) %> 

你需要这个:

<%= link_to "New Report Entry", new_general_report_gen_rep_ent_path(@general_report) %> 
+0

哇!那真是一个疲惫的时刻!非常感谢您的快速回复和提示! –

相关问题