Ruby on rails 设置:基于variableX选择的值-或-如果variableX为零,则为用户提交的值

Ruby on rails 设置:基于variableX选择的值-或-如果variableX为零,则为用户提交的值,ruby-on-rails,forms,submit,default-value,Ruby On Rails,Forms,Submit,Default Value,使用此选择下拉输入字段填充状态名称 如果不是nil,我想将所选值设置为@state.id的内容。如果已经选择了一个选项,那么我希望选择它 如何正确地做到这一点?我尝试了几种解决方案,但都失败了,我现在使用的最新代码示例是: = p.input :state, :collection => ["State1","State2"] :selected => (@state.id.to_s rescue nil) || (pa

使用此选择下拉输入字段填充状态名称

如果不是nil,我想将所选值设置为@state.id的内容。如果已经选择了一个选项,那么我希望选择它

如何正确地做到这一点?我尝试了几种解决方案,但都失败了,我现在使用的最新代码示例是:

    = p.input :state,
              :collection => ["State1","State2"]
              :selected => (@state.id.to_s rescue nil) || (params[:state] rescue nil),
              :id => "state",
              :name => "state",
              :prompt => t('forms.choose')

问题在于:selected选项基于两个值工作

  • 集合数组中元素的索引,或
  • 价值本身
  • 因此,假设您希望选择最后一个选项,在您的情况下,您需要:

    :selected => 1
    


    我希望这会有帮助。

    :collection=>[“State1”,“State2”中有一个输入错误}
    我不理解您的问题。您希望根据其他输入或根据对象的alredy selected选项选择此选项吗?修复了打字错误我希望将所选值设置为@state.id的内容(如果不是nil)。如果已经选择了选项,则我希望改为选择该选项。没有问题ther type:)集合数组后缺少逗号。是否有错误?或者只是提示了错误的值?请查看我的答案。
    :selected => "State2"