Table: age_values
id | kids_age | teen_age | old_age
1 | Age - 1 | Age - 16 | null
2 | Age - 2 | Age - 17 | Age - 25
3 | Age - 3 | Age - 18 | null
4 | Age - 4 | Age - 19 | Age - 26
5 | under 5 | Age - 20 | Age - 28
I have a table age_values and model for the table is
class AgeValue < ActiveRecord::Base
self.table_name = 'age_values
self.primary_key = 'id
def to_s
kids_age
end
def to_s_teen
teen_age
end
def to_s_old
old_age
end
end
in my view,
# some_condition = 5
<% if some_condition = 1 %>
<% age = to_s %>
<% elsif some_condition = 2 %>
<% age = to_s_teen %>
<% else %>
<% age = to_s_old %>
<% end %>
<%= f.collection_select(age_value_for_question, :id, age, {include_blank: ((some_variable || 0) != 1) ? 'Please select an option' : false}, {name: some_name}) %>
I want to display the option which is not null. Basically for old_age just want to display {id: 2, old_age: Age - 25, id: 4, old_age: Age - 26, id: 5, old_age: Age - 28}
What I have Tried:
I have changed and added another method in my model
def to_s_old
exclude_null_for_old_age
end
def exclude_null_for_old_age
age = AgeValue.where("old_age IS NOT NULL")
age.pluck(:old_age)
end
I Want to exclude the null of value 1 and 3)
My current result:
<option value=1>["Age - 25", "Age - 26", "Age - 28"]</option>
<option value=2>["Age - 25", "Age - 26", "Age - 28"]</option>
<option value=3>["Age - 25", "Age - 26", "Age - 28"]</option>
<option value=4>["Age - 25", "Age - 26", "Age - 28"]</option>
<option value=1>["Age - 25", "Age - 26", "Age - 28"]</option>
My Expected result:
<option value=2>Age - 25</option>
<option value=4>Age - 26</option>
<option value=5>Age - 28</option>
.compact?.compacton?