2016-05-19 2 views
2

私はElixir/Phoenixを使用していて、デフォルトのブール値を上書きしようとしていますが、動作しません。ここに私のスキーマです:Phoenix/Elixirのブール値を上書きする

schema "orders" do 
field :number_of_customers, :integer 
field :completed, :boolean, default: false 
belongs_to :table, Pos1.Table 
has_many :order_items, Pos1.OrderItem 

ので、デフォルトの順序値「完了」をonclickの値が変更されたときにtrueに、しかし私は、ボタンを作りたい、falseです。私は上書きのためにhidden_​​inputを使用することに決めましたが、何らかの理由でボタンをクリックしても値が変更されません。

<%= form_for @completedchangeset, @action, fn f -> %> 
<%= hidden_input f, :completed, value: true %> 
<div class="form-group"> 
<%= submit "Order completed", class: "btn btn-primary" %> 
</div> 
<% end %> 

その他の値はすべて変更できますが、ブール値は変更できません。何が間違っているのですか?

+0

今はチェックできませんが、falseとtrueの代わりに0と1を使用してください。 –

+0

ブール値から型を変更し、0と1を使用するだけですか?なぜなら、ブール値はtrue/false [構文](https://hexdocs.pm/ecto/Ecto.Schema.html)のみを受け入れることができるからです。または方法がありますか? – Ilya

+1

@Ilya 'Order'モデルの必須フィールドかオプションフィールドのどちらかに':completed'がありますか? – Dogbert

答えて

1

hidden_inputのブール値を渡すときは、falseとtrueの代わりに0または1の値を使用する必要があります(これはHTMLのみが0と1のためです)。

関連する問題