2013-11-15 16 views
0

我創造了這個路線:我得到一個錯誤的鏈接,路線

get "patientform/create/(:department_id)/(:form_model)/(:form_id)/(:formpath)", to: 'patientform#create', as: 'create_patientform' 

後來我把它在我的觀點:

<%= link_to 'Form', create_patientform_path(@current_department.id, @patient.class.name, nil, "patients.form"), :class => 'btn btn-info btn-xs' %> 

你怎麼可以在我的鏈接:form_id看到被定義爲無 這將創建此鏈接:

http://localhost:3000/patientform/create/2/Patient/patients.form 

但我需要這個鏈接:

http://localhost:3000/patientform/create/2/Patient//patients.form 

因爲...在我的控制器我保存它是這樣的:

def create 
    a = Patientform.new 
    a.secure = SecureRandom.hex 3 
    a.department_id = params[:department_id] 
    a.form_id = params[:form_id] 
    a.form_model = params[:form_model] 
    a.formpath = params[:formpath] 
    if a.save 
     flash[:notice] = "Patienten Formular jetzt vefügbar zu finden unter #{a.secure}" 
     redirect_to :back 
    end 
    end 

你怎麼能看到的虛假鏈接挑釁,後來不是form_id保存爲nil但insted的formpathnil

=> #<Patientform id: 4, department_id: "2", form_model: "Patient", form_id: "pat 
ients.form", secure: "f7a58b", formpath: nil, created_at: "2013-11-15 11:19:53", upda 
ted_at: "2013-11-15 11:19:53"> 
+0

在任何時刻是你的'form_path'將是'nil'或只是在'form_id '? –

+0

問題是,鏈接到'http:// localhost:3000/patientform/create/2/Patient/patients.form',並且因爲rails認爲'patient.form'是form_id,但它是禁用的 –

+0

是的我明白了但只是想確認'form_path'是否可以爲任何條件? –

回答

0

只需修改您的路線爲

get "patientform/create/(:department_id)/(:form_model)/(:formpath)/(:form_id)", to: 'patientform#create', as: 'create_patientform' 

和你link_to

<%= link_to 'Form', create_patientform_path(@current_department.id, @patient.class.name, "patients.form", nil), :class => 'btn btn-info btn-xs' %> 

因此,它需要的form_path第一,然後form_id

相關問題