【问题标题】:Rails select tag in form doesn't populate with value in the edit view表单中的 Rails 选择标记未在编辑视图中填充值
【发布时间】:2013-12-28 03:34:33
【问题描述】:

我有一个由脚手架为成员模型生成的典型 rails _form。对于参数 :state 我正在使用选择标签:

 <%= f.select :state, options_for_select(us_states),  { :include_blank=>true, :prompt =>  'State' }, { :class => 'form-control' } %>

使用辅助方法(美国):

def us_states
[
['AK', 'AK'],
['AL', 'AL'], #etc

对于参数“member_since”,我使用的是 select_year 助手:

<%= select_year(0, {:start_year => 2013, :end_year => 1920, :field_name => 'member_since', :prompt => 'Choose year', prefix: :member}, {:class => "form-control"} )   %>

现在这两个选择都可以创建新记录,但在编辑记录视图中没有预先填写任何字段。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby forms helpers


    【解决方案1】:
    <%= f.select :state, us_states,  { :include_blank=>true, :prompt =>  'State' }, { :class => 'form-control' } %>
    

    <%= select_year(f.object.member_since, {:start_year => 2013, :end_year => 1920, :field_name => 'member_since', :prompt => 'Choose year', prefix: :member}, {:class => "form-control"} )   %>
    

    更新:

    由于 member_since 是一个字符串,您需要将其转换为日期:

     <%= select_year(Date.new(f.object.member_since.to_i), {:start_year => 2013, :end_year => 1920, :field_name => 'member_since', :prompt => 'Choose year', prefix: :member}, {:class => "form-control"} )   %>
    

    【讨论】:

    • 谢谢!!状态选择字段现在可以使用。但是,member_since select 抛出了一个动作控制器错误:未定义的方法 `year' for "2008":String
    • 这就是您将年份存储为字符串的结果:) 您可以将数据列更改为日期,或使用未填充的代码(我会在几秒钟内更新它)
    • 好点:|更改了字段类型,现在可以完美运行。再次感谢
    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    相关资源
    最近更新 更多