2017-06-01 65 views
0

我有一個表單,我用於新建和編輯,以及索引和單擊新功能的窗體和編輯工作,但是當我去創建或更新窗體返回一個加載錯誤到另一個控制器。無法自動加載常量控制器

控制器是系統中的PathCreationsController,它想在另一個地方使用創作控制器,它想用它來定義它......這很奇怪,因爲我沒有任何設置要做。

我試着向表單添加一個url並設置要放的方法,但是當我這樣做並強制控制器正常工作時,它將數據庫中的所有參數設置爲null,所以我認爲這不是一種有效的方法解決這個問題。

這裏是控制器:

class System::PathCreationsController < ApplicationController 

    def index 
    @paths = Path::Account.all 
    end 

    def new 
    @paths = Path::Account.new 
    end 

    def edit 
    @paths = Path::Account.friendly.find(params[:id]) 
    end 

    def create 
    @paths = Path::Account.new 

    if @paths.save 
     redirect_to system_path_creations_path(@paths) 
    end 
    end 


    def update 
    @path = Path::Account.find_by(slug: params[:id]) 
    if @path.update 
     redirect_to system_path_creations_path(@path) 
    end 
    end 
end 

這裏是形式:

= form_for @paths do |f| 
     %br 
     .form-group 
     = f.label :name, class: 'control-label' 
     = f.text_field :name, class: 'form-control' 
     .form-group 
     = f.label :slug, class: 'control-label' 
     = f.text_field :slug, maxlength: 28, class: 'form-control' 
     .form-group 
     %p.text-muted Click to upload new icon. 
     .fileinput.fileinput-new{"data-provides" => "fileinput"} 
      %div 
      .fileinput-thumbnail.thumbnail{style: 'max-width: 100%;'} 
       .fileinput-preview{data: {trigger: "fileinput"}, style: 'max-width: 100%;'} 
       = image_tag @firms.try(:logo).try(:present?) ? @life_event.try(:logo).try(:url) : asset_path('/path.svg') 
      %div 
      %span.btn.btn-default.btn-file.btn-sm{style: 'display: none;'} 
       = f.file_field :logo, class: 'file' 
       = f.hidden_field :logo_cache 
     .form-group 
     = f.label :user_id 
     = f.select :user_id, User.all.collect {|u| [#{u.email}", u.id] } 

     = f.submit class: 'btn btn-primary btn-sm' 

回答

0

在你從來沒有設置更新參數型號

def create 
    @paths = Path::Account.new(path_params) 
    if @paths.save 
    redirect_to system_path_creations_path(@paths) 
    end 
end 

你會創建操作還需要添加

def path_params 
    params.require(:path_account).permit(:name, :slug, :other, :params, :to, :permit) 
end 
+1

關於約定的一些注意事項 Rails尋找控制器(模型名稱複數形式)給定模型名稱的控制器,除非另有明確告知,所以對於模型路徑控制器將是PathsController並且路徑將沿着/路徑/ 其次:對數組和集合使用複數參數和對單個對象使用單個時態參數的好習慣(即Path :: Account.all的路徑,但Path :: Account.new的路徑 這有助於瞭解識別變量中的內容。 –

+0

雖然這是正確的方式做到這一點,我現在得到的參數是空的地方 – codewarrior

+0

你可以添加一個日誌文件的副本,顯示請求中傳遞了什麼參數? –

相關問題