如何使用 rails gem best_in_place 在 select 字段中显示当前值?
how to display current value in select field with using rails gem best_in_place?
我正在使用 rails gem best_in_place.
在 select 字段中,它不显示当前值,而是显示类似 -
.
的内容
此外,如果我 select 其他数据,日期字段不会更改日期。
<% @user.each do |record| %>
<tr>
<td>
<%= best_in_place record, :name, :as => :input %>
</td>
<td>
<%= best_in_place record, :gender, :as => :select, collection: (MUser.pluck(:id, :gender)) %>
</td>
<%= best_in_place record, :dob, :as => :date, class: 'datepicker1 %>
</td>
</tr>
<% end %>
日期选择器使用 gem 日期选择器。
日期选择器配置:
$('.datepicker1').datepicker({
regional: "en",
todayHighlight: true,
changeMonth: true,
todayHighlight: true,
language: "en",
orientation: "auto",
toggleActive: true,
autoclose: true
});
第一次加载页面日期字段:
enter image description here
此图像是第一次加载页面时的默认视图。
- 当我单击该字段然后打开 datpicker 并 selected,但日期 selected 就像
05/16/1923
。
正如我在 datepicker js 中设置的那样,无法像配置的方式那样工作。
enter image description here
文本值未显示,因为助手在您的 collection 中找不到它。
如果您的属性是一个字符串(如@nitin-srivastava 所假设的那样),您必须传递一个字符串 collection.
并且,根据这个 post Rails 4 Best in place select collection
你必须传递一个 Hash collection 这种形式 :
{"txt1" => "txt1", "txt2" => "txt2", "txt3" => "txt3"}
这对我有用。
编辑:
所以你可以这样写:
<%= best_in_place record, :gender, as: :select, collection: {'Male' => 'Male', 'Female' => 'Female', 'Other' => 'Other'} %>
如果 record.gender 等于 'Male'、'Female' 或 'Other',它将被显示。
您需要像 [['Male', 'Male'], ['Female', 'Female']]
那样传递 gender
的 collection 而不是像 id
和 gender
的 collection 16=]。如果 collection 正确,它将显示当前值。
用这个代码检查
<%= best_in_place record, :gender, :as => :select, collection: [['Male', 'Male'], ['Female', 'Female']] %>
不知道为什么要从MUser
收集性别。仍然想使用 MUser
然后试试这个。
<%= best_in_place record, :gender, :as => :select, collection: MUser.pluck(:gender).uniq.map { |g| Array.new(2, g) } %>
希望对你有用。
我正在使用 rails gem best_in_place.
在 select 字段中,它不显示当前值,而是显示类似 -
.
此外,如果我 select 其他数据,日期字段不会更改日期。
<% @user.each do |record| %>
<tr>
<td>
<%= best_in_place record, :name, :as => :input %>
</td>
<td>
<%= best_in_place record, :gender, :as => :select, collection: (MUser.pluck(:id, :gender)) %>
</td>
<%= best_in_place record, :dob, :as => :date, class: 'datepicker1 %>
</td>
</tr>
<% end %>
日期选择器使用 gem 日期选择器。 日期选择器配置:
$('.datepicker1').datepicker({
regional: "en",
todayHighlight: true,
changeMonth: true,
todayHighlight: true,
language: "en",
orientation: "auto",
toggleActive: true,
autoclose: true
});
第一次加载页面日期字段: enter image description here 此图像是第一次加载页面时的默认视图。
- 当我单击该字段然后打开 datpicker 并 selected,但日期 selected 就像
05/16/1923
。 正如我在 datepicker js 中设置的那样,无法像配置的方式那样工作。
enter image description here
文本值未显示,因为助手在您的 collection 中找不到它。 如果您的属性是一个字符串(如@nitin-srivastava 所假设的那样),您必须传递一个字符串 collection.
并且,根据这个 post Rails 4 Best in place select collection 你必须传递一个 Hash collection 这种形式 :
{"txt1" => "txt1", "txt2" => "txt2", "txt3" => "txt3"}
这对我有用。
编辑: 所以你可以这样写:
<%= best_in_place record, :gender, as: :select, collection: {'Male' => 'Male', 'Female' => 'Female', 'Other' => 'Other'} %>
如果 record.gender 等于 'Male'、'Female' 或 'Other',它将被显示。
您需要像 [['Male', 'Male'], ['Female', 'Female']]
那样传递 gender
的 collection 而不是像 id
和 gender
的 collection 16=]。如果 collection 正确,它将显示当前值。
用这个代码检查
<%= best_in_place record, :gender, :as => :select, collection: [['Male', 'Male'], ['Female', 'Female']] %>
不知道为什么要从MUser
收集性别。仍然想使用 MUser
然后试试这个。
<%= best_in_place record, :gender, :as => :select, collection: MUser.pluck(:gender).uniq.map { |g| Array.new(2, g) } %>
希望对你有用。