[英]Rails: How to make input read only depending on value
我有一個嵌套的模型表格,我的Foo
有很多Bars
而Baz
有很多Bars
Foo.rb
has_many :bars
accepts_nested_attributes_for :bars
Bar.rb
belongs_to :Foo
belongs_to :Baz
Baz.rb
has_many :bars
視圖/ FOOS / _form.html.haml
= f.simple_fields_for :bars do |p|
= render "bar_fields", f: p
調出表單進行編輯時,如果某個特定Bar
屬於某個Baz
,我想禁用其編輯。
對於它所渲染的每個bars
,我如何在視圖中檢查某個屬性的值是什么。 在這種情況下, Bar
記錄中的Baz
值是多少。
視圖/ FOOS / _form.html.haml
= f.simple_fields_for :bars, @foo.bars.not_belonging_to_a_certain_baz(baz_id) do |p|
= render "bar_fields", f: p
Bar.rb
scope :not_belonging_to_a_certain_baz, ->{ |baz_id| where("bars.baz_id != ?", baz_id) }
或者,如果無法使用范圍,則可以在部分渲染bar_fields時分別檢查每個條形:
視圖/ FOOS / _form.html.haml
= f.simple_fields_for :bars, do |p|
= render "bar_fields", f: p if p.object.baz_id != baz_id
我發現了類似的東西,這就是我所做的
_form.html.haml
= f.simple_fields_for :bars do |p|
- if f.object.baz_id == baz_id
= render "bar_fields", f: p
- else
= render "bar_fields_readonly", f: p
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.