2016-04-07 17 views
0

dayanarak Rails formunda koşulu oluşturma Bir tablodaki bir özniteliğe dayanarak Rails formundaki bir değeri önceden dolduruyorum.Sayfa params

Normal bir İskele kullanarak, bu yeni eylem için harika çalışır. Düzenlemeye geri döndüğümde, yanlış bir değeri önceden doldurur. Bunu düzeltmek için formda bir if/else koşulu oluşturmak istiyorum.

<% if params[:edit] %> 
    <div class="form-group"> 
    <div class="field"> 
     <%= f.label :Game_Number %><br> 
     <%= f.number_field :category_id, :value => 7, class: "form-control" %> 
    </div> 
    </div> 
<% else %> 
    <div class="form-group"> 
    <div class="field"> 
     <%= f.label :Game_Number %><br> 
     <%= f.number_field :category_id, :value => params[:id].to_i, class: "form-control" %> 
    </div> 
    </div> 

<% end %> 

sayfa yüklenirken

bunu yaparken, ancak kullanmaya devam eder: Biz düzenlemek rotada ise test için, ben (bir test olarak) "7" nin bir tamsayı değeri koymak formu istiyoruz <% else %> eylemi yanlış.

Ayrıca benim iskele gelen bu düzenleme sayfasının URL yapısı öylesine gibidir:

http://localhost:3000/questions/22/edit

koşul düzenleme yolu üzerinde davranışını değiştirmek olmadığını nasıl olduğunu çerçeve gerekir?

cevap

1

action ve controller numaralarını params sayfasından alabilirsiniz. Böyle bir durum olabilir: Bunu yapmak için

<% if params[:action] == 'edit' %> 
<% else %> 
<% end %> 
0
<% if @question.persisted? %> 
    <div class="form-group"> 
    <div class="field"> 
     <%= f.label :Game_Number %><br> 
     <%= f.number_field :category_id, :value => 7, class: "form-control" %> 
    </div> 
    </div> 
<% else %> 
    <div class="form-group"> 
    <div class="field"> 
     <%= f.label :Game_Number %><br> 
     <%= f.number_field :category_id, :value => params[:id].to_i, class: "form-control" %> 
    </div> 
    </div> 

<% end %> 
0

kullanın örnek değişkeni, denetleyici değeri ayarlanmamış görünümünde, controller içerisinde: Size göre

def new 
    @object = Object.new(category_id: params[:category_id]) 
end 

def edit 
    @object = Object.find(params[:id]) 
    // puts @object.category_id => 7 or what 
end 

, sadece :

<%= form_for @object do |f| %> 
    <div class="form-group"> 
     <div class="field"> 
      <%= f.label :Game_Number %><br> 
      <%= f.number_field :category_id, class: "form-control" %> 
     </div> 
     </div> 
    <% end %>