【问题标题】:how to set "data-" of rails f.select如何设置rails f.select的“data-”
【发布时间】:2014-07-22 09:54:08
【问题描述】:

我使用 Rails 4。

<%= f.select :industry_id, options_from_collection_for_select([], "id", "name"),
'data-option-dependent' => true,
'data-option-observed' => 'pre_industry_id',
'data-option-url' => '/industries/:pre_industy_id:/sub_industry.json',
'data-option-key-method' => :id,
'data-option_value-method' => :name %>

但是……

结果,数据属性不出现。

<select id="review_industry_id" name="review[industry_id]"></select>

【问题讨论】:

  • 把所有数据属性放在{}边试试
  • @SabyasachiGhosh 它应该如何提供帮助?
  • @MarekLipka 根据这个api.rubyonrails.org/classes/ActionView/Helpers/… 它会期望一个空的哈希,然后是所有选项.. 我相信你的答案是正确的。
  • @SabyasachiGhosh 在您提供的链接中没有任何暗示您的解决方案可以提供帮助。
  • @MarekLipka 它在那里,请看一下 select("album[]", "genre", %w[rap rock country], {}, { index: nil })。在文档中。

标签: ruby-on-rails ruby html select


【解决方案1】:

传递data 哈希作为selecthtml_options 参数的选项:

<%= f.select :industry_id,
             options_from_collection_for_select([], "id", "name"),
             {},
             data: {
                 'option-dependent' => true,
                 'option-observed' => 'pre_industry_id',
                 'option-url' => '/industries/:pre_industy_id:/sub_industry.json',
                 'option-key-method' => :id,
                 'option_value-method' => :name } %>

【讨论】:

  • 不应该也作为html_options参数传递吗?
【解决方案2】:

我相信这会解决你的问题

<%= f.select :industry_id, options_for_select(@array.map{ |c| [c.name, c.id, {'data-option-dependent' => true,
'data-option-observed' => 'pre_industry_id'}] }) %>

【讨论】:

  • 它会将这些属性插入option 标签而不是select 标签。这不是 OP 的意思。
  • 我相信他需要这样的东西。让问题创建者消除混乱。
  • 不,OP 显然想要 select 中的这些属性,这很明显。
【解决方案3】:

select 助手接受两个选项参数。第一个是options,第二个是html_options。既然你对第二个感兴趣,你应该用空哈希({})代替options参数:

<%= f.select :industry_id, options_from_collection_for_select([], 'id', 'name'), {},
'data-option-dependent' => true,
'data-option-observed' => 'pre_industry_id',
'data-option-url' => '/industries/:pre_industy_id:/sub_industry.json',
'data-option-key-method' => :id,
'data-option_value-method' => :name %>

【讨论】:

  • @user3580287 你试过我的解决方案了吗?我的回答有帮助吗?
  • 你的方法应该有效。不知道为什么有人会反对它。
  • @ChrisPeters 反对票之一似乎是 Sabyasachi Ghosh 的报复。但第二个仍然是个谜。
  • @MarekLipka 您的方法也应该有效。如果它在选择中。
  • @MarekLipka 我不是来报复你的。它的论坛以及所有关于分享知识的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多