【发布时间】:2020-03-29 02:14:27
【问题描述】:
我们使用复选框在表单中提交布尔数据。
在rails中,当提交表单时,一个带有"1"或"0"的字符串将被提交给控制器。
在phoenix中,当提交表单时,一个带有"true"或"false"的字符串将被提交给控制器。
如果我们直接在数据库中创建对象就可以了。任何一个值都将正确存储为布尔值。
但如果我们需要在逻辑中使用布尔值,最好的方法是什么?
- 转换为布尔值:
# Ruby code
def create
admin = ActiveModel::Type::Boolean.new.cast(param[:admin])
if admin
....
end
end
- 直接作为字符串使用:
# Elixir code
def create(conn, params) do
case params[:admin] do
"true" -> do something
_ -> do others
end
end
- 其他更好的方法?
【问题讨论】:
标签: ruby-on-rails forms elixir phoenix-framework