我已經貨幣化Rails 4創業板的兩個模型我的Rails 4應用程序。Money Rails Gem - null values
一個被稱爲參與者,另一個被稱爲資助。這些模型中的每一個嵌套在另一個稱爲Scope的模型中。範圍屬於項目。
該協會是:
項目有一個範圍;範圍屬於項目 範圍有一個參與者並且有一個資助;參與者和資金中的每一個都屬於範圍。
項目接受Scope的嵌套屬性。範圍接受參與者和資助的嵌套屬性。
參與者和資金中每個相關屬性的參數都可以在範圍和項目控制器以及模型本身中使用。 Scope和Project控制器允許範圍參數。
在我的項目表格中,我問了幾個問題。該表格也爲每個屬於它的模型嵌套了表格。在範圍表格中,我問用戶兩個布爾問題,是:你想參與者?你想要資金嗎?這些模型中的每一個都有關於參與成本和資金的後續問題(這些屬性是貨幣化的)。
如果這些問題的答案是真實的,那麼我會透露參與者或資金形式的部分內容,並詢問他們想要多少錢。
我有兩個問題:
第一個問題:非空違反 1.如果用戶說,他們確實想參加,但目前還沒有相關的成本,從而使參與者模型中的布爾問題,詢問是否有成本是參與參與,我得到一個錯誤,指出:
ERROR: null value in column "participation_cost_pennies" violates not-null constraint
- 如果用戶說他們不想參加在回答的範圍形式提出的問題,我得到了與上面1中相同的錯誤
做出的第一個問題走開除了那些任何情況下,當參與成本實際尋找;和
通過顯示當您回來編輯表單時保存的原始金額來修復第二個問題?我試過插入:選入我的表單元素,但它沒有做任何事情。
第二個問題:如果我在貨幣化的字段中保存金額,然後回來編輯項目表單,表單不會在貨幣化字段中顯示保存的金額 - 如果您沒有重新進入,我會得到一個錯誤說它不能爲空。
有誰知道如何:
我的代碼如下:
在我的範圍表格(嵌套我的項目表單內):
<%= f.simple_fields_for :scope do |s_all| %>
<%= s_all.input :if_participant, :as => :boolean, :label => false, inline_label: 'Public participants or volunteers' %>
<%= s_all.input :if_funding, :as => :boolean, :label => false, inline_label: 'Funding or expenses' %>
如果回答這些字段是真的,那麼我露出部分資金參與者的表格(以實際情況爲準)。
裏面我參加部分的形式,我有:
<%= f.simple_fields_for :scope do |participants_s| %>
<%= participants_s.simple_fields_for :participant do |par| %>
<%= f.label 'Are participants reimbursed for their costs?', :class => 'question-project' %>
<%= par.collection_radio_buttons :costs, [[true, ' Yes'], [false, ' No']], :first, :last, {:item_wrapper_class => 'fixradio'}, {:class => "response-project"} %>
<%= f.label 'What amount will you pay for participation costs?', :class => 'question-project' %>
<%= par.select :participation_cost_currency,
options_for_select(major_currencies(Money::Currency.table)), selected: :participation_cost_currency,
label: false,
prompt: "Select your costs currency" %>
<%= par.input :participation_cost, label: false, placeholder: 'Whole numbers only', selected: :participation_cost_pennies, :input_html => {:style => 'width: 250px; margin-top: 20px', class: 'response-project'} %>
嗨乍得,謝謝你的嘗試。此字段的模式中已經有默認值0。恐怕這不是解決這個問題的辦法 – Mel
另外,當用戶說他們不需要創建成本時,我不明白這是如何解決問題的 – Mel