I possède un modèle de message avec un attribut de groupe de chaînes destinataires. Voici ce que mon messages_controller.rb ressembleComment soumettre un tableau de chaînes dans un formulaire Rails 4.2
def new
@message = Message.new
@message.attachments = params[:attachments]
end
def create
@message = Message.new(create_params)
@message.user_id = current_user.id
@message.attachments = params[:message][:attachments]
@message.recipients = params[:message][:recipients]
save_message or render 'new'
end
private
def create_params
params.require(:message).permit(:object, :content,
:recipients,
:attachments)
end
Et le _fields.html.erb ressemble à ceci:
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :object %>
<%= f.text_field :object, class: "form-control" %>
<%= f.label :recipients %>
<%= f.text_field :recipients, multiple: true, class: "form-control" %>
<%= f.label :attachments %><br>
<%= f.file_field :attachments, multiple: true, class: 'form-control' %><br />
<%= f.label :content %>
<%= f.text_area :content, class: "form-control" %>
Le problème est que est sauve le "tableau" comme celui-ci
["recipient_1, recipient_2"]
au lieu de
["recipient_1", "recipient_2"]
Je souhaite être en mesure de récupérer le destinataire [0] = destinataire_1 et non le destinataire [0] = ensemble du tableau C'est probablement quelque chose de simple, mais je ne trouve pas le correctif. Toutes les entrées appréciées. merci
merci pour la réponse. J'ai dû l'enrouler autour d'un bloc '{destinataires: []}' et il m'a quand même donné [["recipient_1, recipient_2"]] ' – Ghost
C'est compliqué, mais vous devez en fait mettre des déclarations de tableau à la fin ** * de vos paramètres de permis! Donc, dans le morceau de code ci-dessus, ': attachments' est en train de gâcher des choses, parce que c'est après la déclaration' destinataires'. Ou peut-être qu'ils ont corrigé cela dans la version la plus récente de Rails? –
@CyrilDD Merci pour la capture, je ne le savais pas. – nextstep