简单形式:将集合 select 个选项绑定到一个值

Simple form: bind collection select choices to a value

我有一个带有布尔属性的模型 "public"。 在一个简单的表格中,在编辑界面上,我有这个:

  <%= f.input :public, :collection => ['Public', 'Private'],  label: "Access", selected: 1 %>

我不想在 select 的选项中有 truefalse,但我需要将 Public 绑定到 truePrivatefalse,因此当提交表单时,它会将 public 属性保存到 truefalse.

我可以在控制器中调整一些东西,但我想知道是否有一种干净的方法可以做到这一点。

此外,由于它是编辑页面,public 属性已经有一个值。我如何在这里也将存储的值绑定到 PublicPrivate 以便在表单中显示当前保存的值?

<%= f.input :public, 
        :as => :select, 
        :collection => [['Private',false],['Public',true]], 
        :include_blank => false, 
        :selected => false,
        :label => "Public?" %>