簡體   English   中英

rails4,simple_form,check_box,radio_button,控制器

[英]rails4, simple_form, check_box, radio_button, controller

我已經使用腳手架生成了一個模型。

rails g scaffold attendance ename:string entertime:datetime sl:boolean mrgsl:boolean evesl:boolean halfday:boolean 

現在我想使用simple_form來顯示它,並且我想在它們之間建立這些關系:

sl->有兩種類型:i)mrgsl。 ii)evesl。

因此,當選擇sl(check_box)時,它會顯示兩個單選按鈕並選擇兩個。 半天也是一個復選框。

<%= simple_form_for @attendance, :html => { :class => 'form-horizontal' } do |f| %>
<%= f.input :ename %>
<%= f.input :entertime, as: :time %>
<%= f.input :sl, as: :check_box %>
<%= f.input :mrgsl, as: :radio_button %>
<%= f.input :evesl, as: :radio_button %>
<%= f.input :halfday, as: :check_box %>

  <div class="form-group">
    <div class='col-md-offset-2 col-md-10'>
      <%= f.submit nil, :class => 'btn btn-primary' %>
      <%= link_to t('.cancel', :default => t("helpers.links.cancel")),
                  attendances_path, :class => 'btn btn-default' %>
    </div>
  </div>
<% end %>

這是即時通訊試圖這樣做的方式,但它沒有用。

RuntimeError in Attendances#new

Showing /home/pallavsharma/Workspace/crm/app/views/attendances/_form.html.erb where line #4 raised:

No input found for check_box

1<%= simple_form_for @attendance, :html => { :class => 'form-horizontal' } do |f| %>
2<%= f.input :ename %>
3<%= f.input :entertime, as: :time %>
4<%= f.input :sl, as: :check_box %>
5<%= f.input :mrgsl, as: :radio_button %>
6<%= f.input :evesl, as: :radio_button %>
7<%= f.input :halfday, as: :check_box %>

有什么可能的方法來做到這一點。

首先,如果我正確理解了您編寫的內容,則可能需要重新構建模型以更好地適應您的邏輯。

您想給用戶三個選擇:

“沒有ls”
“ ls與mrgsl”
“與evesl的ls”

您的模型,這些布爾說,他們有8,但你不想讓他們來接mrgsl如果他們沒有挑LS,你不想讓他們來接mrgslevesl,對嗎?

如果您不必每次都想向“ ls”中添加新選項時都不必重新遷移數據庫,那將更有意義(並使您的代碼更易於維護)。 因此,我正在考慮在模型中使“ ls”成為字符串型數據。 然后,您可以根據需要提供任意值:“ evesl”,“ mrgsl”,“ disabled”,然后添加更多內容而沒有任何困難。 然后,您可以在控制器中進行處理。 你不會做的

Attendance.where(mrgsl: true)

Attendance.where(ls: "msgrl")

無論如何,要回答您的問題:為了做您想做的事情(如果選中此復選框,則使您的單選按鈕出現),您需要編寫一些JavaScript。

您可以在此線程中找到所有內容,以使其按所需的方式工作。

最后,要使用一點simple_form功能,您可以為單選按鈕創建一個“集合”

希望能幫助到你 !

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM