Andrewliu. Je ne veux pas que le modèle dynamique ne signifie pas. Je parle de la façon d'utiliser un autre nom de modèle pour utiliser JCROP.
update: (coords) =>
$('#user_crop_x').val(coords.x)
$('#user_crop_y').val(coords.y)
$('#user_crop_w').val(coords.w)
$('#user_crop_h').val(coords.h)
@updatePreview(coords)
La #user_crop_x
vient de cette forme:
= form_for MODEL, url: CROP_URL, method: :patch, html:{id: "jcrop_form"} do |f|
- %w[x y w h].each do |attribute|
= f.hidden_field "crop_#{attribute}"
.form-actions
= f.submit t(".crop"), class: 'btn btn-primary'
Il générera par défaut de nombreux identifiants dans le Hidden_field dans Rails form_for
. Juste comme #user_crop_x
et #user_crop_y
etc.
L'ID par défaut est une certaine règle ce qui est ##{model_name}_{attribute_name}
, donc si tu as dynamic model
Et la meilleure façon est de définir le nom de classe dans le HIDDEN_FIELD. Exemple:
= f.hidden_field "crop_#{attribute}", class: "crop_class_#{attribute}"
Et définissez le code jQuery comme:
update: (coords) =>
$('.crop_class_x').val(coords.x)
$('.crop_class_y').val(coords.y)
$('.crop_class_w').val(coords.w)
$('.crop_class_h').val(coords.h)
@updatePreview(coords)