我有一个has_many提供的工作模型,用户可以接受或拒绝这些提议,但是当用户接受提议时,我怎么能这样做,无法创建更多优惠?我试图以这种方式做到这一点,它的工作原理,但它重复输入框。所以我做错了什么,或者我该如何做另一种方式?Rails小循环错误
#show.html.haml
- if @job.offers.blank?
= render 'offers/form'
- @job.offers.each do |f|
- if @job.offers.find(f).status == false || @job.offers.find(f).status == nil
= render 'offers/form'
- else
cannot do that
#offers/_form.html.haml
= simple_form_for([@job, @job.offers.build]) do |f|
= f.input :pirce_offer
= f.button :submit
当您遍历'@ job.offers'时,该循环中的每个'f'都是'offer'。 (请使用描述性变量名称,例如“offer”,它使事情变得更加可读)。然后你做'if @ job.offers.find(f).status' - 这很奇怪。你为什么再看一遍?为什么不直接说'if f.status == false'?另外,你可以使用'if f.status.blank?'而不是测试它是否等于false或nil。 –
哦,没错。但是当我测试'f.status == false || f.status == nil || f.status.blank?',它不起作用,我的意思是'form'不是呈现,当'status.blank?' – exerq