Корпус:Пользователя редактируемые слизни с животными ID
Моих станций форма содержит поле слизняка, если значение вводится оно должно быть использовано в качестве заготовки.
EDIT: некоторые разъяснения:
То, что я хочу, это очень нравится, как слизни работать в WordPress:
- Если нет пробкового не предусмотрено -> тихоход имя
- Если пробкового предоставляется -> использовать введенный пользователем слизняка
- Если пробкового обновляется -> толкать старую слизняка истории
Моя проблема:
Невозможно определить, как получить идентификатор Friendly, чтобы использовать предоставленный пользователем слизню.
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
редактировать:
<%= 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 %>
Можете ли вы показать форму? Сейчас вы используете имя для friendly_id. Все, что вам нужно сделать, это позволить пользователю изменить параметр имени. – ChrisBarthol
Пользователь может изменить уже изменить параметр имени - я хочу, чтобы пользователь мог настроить slug - но приложение должно генерировать slug на основе имени, если нет slug предоставляется – max
Я думаю, я смущен относительно что вы просите. Пользователь может изменить имя, поэтому они могут настроить слизню. Если вы хотите, чтобы slug, сгенерированный из другого параметра, вы просто имели бы 'friendly_id: parameter,: use => [: slugged,: history]' – ChrisBarthol