2014-06-24 74 views
1

我有一個小問題。我正在做一個小項目,我被困在一些相當簡單的東西上,但無法通過它。我有一個表單,提交後,它重定向到查看'show',但我想改變它將它重定向到'show15'。我很擅長使用rails,所以這可能是一個有點愚蠢的問題,但會真正幫助你。提前致謝。紅寶石軌道 - 使用提交獲得不同的頁面

這就是我的方式:

<%= form_for(@patient) do |f| %> 
    <% if @patient.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@patient.errors.count, "error") %> prohibited this patient from being saved:</h2> 

     <ul> 
     <% @patient.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :imie %><br /> 
    <%= f.text_field :imie %> 
    </div> 
    <div class="field"> 
    <%= f.label :nazwisko %><br /> 
    <%= f.text_field :nazwisko %> 
    </div> 
    <div class="field"> 
    <%= f.label :adres %><br /> 
    <%= f.text_field :adres %> 
    </div> 
    <div class="field"> 
    <%= f.label :pesel %><br /> 
    <%= f.text_field :pesel %> 
    </div> 
    <div class="field"> 
    <%= f.label :telefon %><br /> 
    <%= f.text_field :telefon %> 
    </div> 
    <div class="field"> 
    <%= f.label :doktor %><br /> 
    <%= collection_select(:imie, :imie, Doctor.all, :id, :full_name) %> 
    </div> 

    <div class="actions"> 
    <%= submit_tag "Edytuj", class: "show15", value: 'Edytuj' %> 
    </div> 
<% end %> 

回答

1

假設你形式將帶你到創建操作你的病人控制器內。當您的患者保存在數據庫中時,您只需要將其重定向到您的創建動作中的自定義動作

def create 
    @patient = Patient.new patient_params 
    if @patient.save 
    redirect_to your_path_of_show15 
    else 
    render new 
    end 
end 

我假設你創建行動中,你會碰到這樣的由軌道帶你到新創建的患者的show行爲redirect_to的@patient。欲瞭解更多有關航線的軌道是如何工作的參考rail guides routing

+0

謝謝!它做了這份工作:) – Achtung303c

0

如果你看看你的patients_controller(我猜的名字,根據你@patient變量的名字),你可能有一些看起來像這樣:

def create  
    @patient = Patient.new(patients_params) 

    respond_to do |format| 
     if @patient.save 
     format.html { redirect_to @patient, notice: 'Patient was successfully created.' } 
     format.json { render json: @patient, status: :created, location: @patient } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @patient.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

Rails使用RESTful routing的方法。此行具體爲:

format.html { redirect_to @patient, notice: 'Patient was successfully created.' } 

是什麼導致show頁面自動加載。您可以通過幾種方法改變這種行爲。一種方法是簡單地直接插入網址的方法調用,就像這樣:

format.html { redirect_to "patients/show15" ... } 

,或者取決於你如何設置routes.rb,如果你做了這樣的事情:

resources :patients do 
    collection do 
     get :show15 
     ... 
    end 
end 

然後你可以這樣做:

format.html { redirect_to show15_patients_path ... } 
+0

太棒了!就是這樣!非常感謝你! – Achtung303c