Happening:
My station forms contain a drain field, if a value is entered, it should be used as a bullet.
EDIT: some clarifications:
What I want is very similar to how bullets work in wordpress:
- If there is no slug, → slug name
- If there is slug -> use the user-entered pool
- If updating slug -> push old slug to history
My problem:
There is no way to figure out how to get the Friendly ID to use a user-provided bullet.
class Station < ActiveRecord::Base extend FriendlyId belongs_to :user has_many :measures validates_uniqueness_of :hw_id validates_presence_of :hw_id class_attribute :zone_class self.zone_class ||= Timezone::Zone friendly_id :name, :use => [:slugged, :history] before_save :set_timezone! .... def should_generate_new_friendly_id? name_changed? or slug_changed? end end
edit:
<%= form_for(@station) do |f| %> <%= f.div_field_with_label(:name) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:slug) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:hw_id, 'Hardware ID') do |key| f.text_field(key) end %> <%= f.div_field_with_label(:latitude) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:longitude) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:user_id, "Owner") do |key| f.select(:user_id, options_from_collection_for_select(User.all, :id, :email), { include_blank: true }) end %> <div class="actions"> <%= f.submit %> </div> <% end %><%= form_for(@station) do |f| %> <%= f.div_field_with_label(:name) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:slug) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:hw_id, 'Hardware ID') do |key| f.text_field(key) end %> <%= f.div_field_with_label(:latitude) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:longitude) do |key| f.text_field(key) end %> <%= f.div_field_with_label(:user_id, "Owner") do |key| f.select(:user_id, options_from_collection_for_select(User.all, :id, :email), { include_blank: true }) end %> <div class="actions"> <%= f.submit %> </div> <% end %>
source share