koperty:Obsługi edycji ślimaki z przyjazną ID
Moi formy stacja zawierać pole ślimak, jeśli wartość nie jest wpisany powinien on być stosowany jako ślimak.
EDIT: niektóre wyjaśnienie:
Co chcę jest podobnie jak ślimaki pracować w WordPress:
- Jeśli nie ślimak jest -> ślimak nazwę
- Jeśli ślimak jest -> użyj wszedł użytkownika ślimak
- Jeśli ślimak jest aktualizowana -> wcisnąć stary pocisk do historii
Mój problem:
Nie można ustalić, w jaki sposób uzyskać identyfikator Friendly ID, aby korzystać z dostarczonego przez użytkownika pliku.
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 %>
Czy możesz pokazać formularz? W tej chwili używasz nazwy dla friendly_id. Wystarczy, że zezwolisz użytkownikowi na zmianę parametru nazwy. – ChrisBarthol
Użytkownik może zmienić już zmienić parametr nazwy - chcę tylko, aby użytkownik mógł spersonalizować slug - ale aplikacja powinna generować korek na podstawie nazwy, jeśli nie ma podanego pocisku. – max
Chyba jestem zdezorientowany co do o co pytasz. Użytkownik może zmienić nazwę, w związku z czym może dostosować ślimak. Jeśli chcesz wygenerować slug z innego parametru, po prostu masz parametr friendly_id:, use => [: slugged,: history] ' – ChrisBarthol