Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 自定义选择选项html属性_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 自定义选择选项html属性

Ruby on rails 自定义选择选项html属性,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个“添加新产品页面”,数据库表“jos_stockmovement”中有一个字段“start_week”,其中包含年度和周的数据 在我的“添加新产品”页面中,我有一个名为“开始周”的字段下拉列表,其中包含年份和周,例如,“2012/36” 我想这样做,过去几周可以查看,但只有当前一周可以选择 这是我的密码: <td colspan="99"> <%= fld.select :start_week, options_for_select( StockMoveme

我有一个“添加新产品页面”,数据库表“jos_stockmovement”中有一个字段“
start_week
”,其中包含年度和周的数据

在我的“添加新产品”页面中,我有一个名为“开始周”的字段下拉列表,其中包含年份和周,例如,“2012/36”

我想这样做,过去几周可以查看,但只有当前一周可以选择

这是我的密码:

<td colspan="99">
  <%= fld.select :start_week, options_for_select(
    StockMovement.order("year DESC, week DESC").map { | val |
      [ "#{ val.year }/#{ val.week }", val.id ]
      },
      :selected => @product.start_week
    ),
    :class => "ddl_SW"
  %>
</td>

@产品启动周
),
:class=>“ddl_SW”
%>

您要做的是将disabled属性添加到过去一周的选项中,如

<select name="post[stock_movement]">
  <option value="1">Present</option>
  <option value="2" disabled="disabled">Past</option>
  <option value="3" disabled="disabled">Past</option>
</select>
您的视图.rb

# not sure about the scope, maybe need to put in a lambda ?
scope :option_tags, order("year DESC, week DESC").map(&:option_tag)

def before_now?
  # your test to know if the thing is before today or not
end

def option_tag
  ["#{ stock_movement.year }/#{ stock_movement.week }",
   val.id,
   before_now? ? {:disabled => :disabled} : {}]
end
<td colspan="99">
  <%= fld.select :start_week,
                 options_for_select(StockMovement.option_tags,
                                    :selected => @product.start_week),
                 :class => "ddl_SW" -%>
</td>

@产品。开始(每周),
:class=>“ddl_SW”-%%>

怎么样?我无法测试它,但应该可以。

您要做的是将disabled属性添加到过去一周的选项中,如

<select name="post[stock_movement]">
  <option value="1">Present</option>
  <option value="2" disabled="disabled">Past</option>
  <option value="3" disabled="disabled">Past</option>
</select>
您的视图.rb

# not sure about the scope, maybe need to put in a lambda ?
scope :option_tags, order("year DESC, week DESC").map(&:option_tag)

def before_now?
  # your test to know if the thing is before today or not
end

def option_tag
  ["#{ stock_movement.year }/#{ stock_movement.week }",
   val.id,
   before_now? ? {:disabled => :disabled} : {}]
end
<td colspan="99">
  <%= fld.select :start_week,
                 options_for_select(StockMovement.option_tags,
                                    :selected => @product.start_week),
                 :class => "ddl_SW" -%>
</td>

@产品。开始(每周),
:class=>“ddl_SW”-%%>
怎么样?我不能测试它,但应该可以