ruby-on-rails-3 - 如何使用索引填充 rails simple_form 选择框?

标签 ruby-on-rails-3 simple-form

希望这不是太复杂..

所以我有一个具有很多属性的模型,我决定将其作为索引存储在数据库中,它引用模型中的常量:

class Profile < ActiveRecord::Base
   STATUS_CHOICES = %w( single relationship married divorced complicated open )
   etc...

在我的表格中,我现在正在这样做:

= f.simple_fields_for :profile do |p|
  = dp.input :relationship_status, :required => true, :collection => Datingprofile::STATUS_CHOICES

这很好地显示了集合,但是当然,值需要从模型中传入的索引中设置。如何将集合上的值设置为与 STATUS_CHOICES 数组的正确索引相对应?

更新:将重新设计它以使枚举属性成为实际的 AD 对象

最佳答案

型号

某种常量散列:

HASH_NAME = {
 0 => "Choose:",
1 => "On-Campus Recruiting - CSO",·
2 => "CSO Staff Referral",
3 => "Faculty Contact",·
4 => "Career Day",·
5 => "CSO Summer Job Listing",·
6 => "Alumni Contact",·
7 => "Personal Contact",·
8 => "Other"·
}

--查看

<%= f.input :some_field, :collection => Model::HASH_NAME.sort.map {|k,v| [v,k]} %>

这将输出以 select-value 作为 hash key 和 select-name 作为 hash value 的 nice select,例如:

<select id="form_application_job_source" class="select required" name="form_application[job_source]">
<option value="0">Choose:</option>
<option value="1">On-Campus Recruiting - CSO</option>
<option value="2">CSO Staff Referral</option>
<option value="3">Faculty Contact</option>
<option value="4">Career Day</option>
<option value="5">CSO Summer Job Listing</option>
<option value="6">Alumni Contact</option>
<option selected="selected" value="7">Personal Contact</option>
<option value="8">Other</option>
</select>

现在,如果您从下拉列表中选择“校园招聘 - CSO”,将存储的值是:1

要在 View 中将其显示为“校园招聘 - CSO”,您必须在模型本身中创建一个小的返回函数:

def return_paper_type
    HASH_NAME[id]
  end

在 View 中,它会是这样的:<%= @instancevariable.return_paper_type %>

关于ruby-on-rails-3 - 如何使用索引填充 rails simple_form 选择框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900119/

相关文章:

ruby-on-rails - actionview-4.2.4 - 未初始化的常量 ActionView::Helpers::ActiveModelHelper (NameError)

javascript - 使用 simple_form 设置数据内容

ruby-on-rails - 根据数据库中定义的字段生成表单

ruby-on-rails - 渲染一个仅可请求 1 次的页面?

ruby-on-rails - 如何仅在某个命名空间内跳过 application_controller 调用 (ActiveAdmin)

ruby-on-rails-3 - 如何代表登录用户发送 Twitter 直接消息?

ruby-on-rails - 以简单的形式设置类和值(Rails)

ruby-on-rails-3 - Rails 路由更新模型而不传递 :id

ruby-on-rails - Ruby on Rails 路线说明

ruby-on-rails - 我可以验证acts_as_taggable_on 标签的存在吗?