mie forme stazione contengono un campo slug, se viene inserito un valore che deve essere utilizzato come la lumaca.
EDIT: qualche chiarimento:
Quello che voglio è molto simile a come lumache lavorano in wordpress:
- Se non viene fornito alcun slug -> slug il nome
- Se viene fornito slug -> utilizzare la lumaca utente immesso
- Se slug viene aggiornato -> spingere vecchia lumaca alla storia
Il mio problema:
Non riesco a capire come ottenere Friendly Id per utilizzare lo slug fornito dall'utente.
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 %>
Puoi mostrare il modulo? In questo momento stai usando il nome per friendly_id. Tutto quello che dovresti fare è consentire all'utente di cambiare il parametro del nome. – ChrisBarthol
L'utente può modificare già il parametro name - quello che voglio è che l'utente sia in grado di personalizzare lo slug - ma l'app dovrebbe generare una lumaca in base al nome se non viene fornita nessuna lumaca – max
Immagino di essere confuso da cosa stai chiedendo L'utente può cambiare il nome, quindi possono personalizzare lo slug. Se vuoi lo slug generato da un parametro diverso avresti semplicemente 'friendly_id: parameter,: use => [: slugged,: history]' – ChrisBarthol