![](/img/trans.png)
[英]How do I make a grouped select box grouped by a column for a given model in Formtastic for Rails?
[英]How do I select an element from the grouped selection by its value?
我遇到的問題(我已嘗試過互聯網上的所有解決方案)是如何從帶有水豚的分組選擇中選擇一個元素。
這是下拉列表:
<%= f.grouped_collection_select(:subcategory_id, Category.order(:name), :subcategories, :name, :id, :name, {}, { :class=> "form-control" }) %>
這是我嘗試選擇它的方法之一。
select("Ortodoncista", from: 'provider[subcategory_id]')
錯誤
Unable to find option "Ortodoncista" (Capybara::ElementNotFound)
這個答案適用於我Capybara:按值選擇選項而不是 @d_rail 選擇文本
首先創建一個幫助器。 我把這個幫助器放在spec/support/utilities.rb
def select_by_value(id, value)
option_xpath = "//*[@id='#{id}']/option[@value='#{value}']"
option = find(:xpath, option_xpath).text
select(option, :from => id)
end
然后使用它:
select_by_value "select_id", "select_option"
在我的例子中,select標簽的id為user_category
,我想選擇的選項是Musician
。 所以我的榜樣是
select_by_value "user_category", "Musician"
由於我更熟悉CSS選擇,我會使用:
這樣可以在集合的子項(Categories)上找到與其值相對應的option元素(對應於option_key_method (:id)的結果):
page.find('select#your-selectbox-id option[value="your-value"]')
這將返回由您的值找到的所需的capybara元素,而不是通過選項的文本搜索。 然后你可以做任何你想做的事。 例如: .text或.click 。
或者(只是要記住)這樣,如果你想從你的selecbox中選擇一個給定的選項與capybara:
select 'Option Label', :from => 'Selectbox Label Text'
在您的情況下,將是您的集合 (類別)的子項上的option_value_method (:name)的結果。
Obs: 分組選擇的參考
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.