Comment découper une chaîne en trois parties?
J'ai la chaîne "001-1776591-7"
, et je tiens à le diviser en 3 parties, "-"
être le split
paramètre.
J'ai déjà créé deux méthodes, pour la première et la dernière, mais que la deuxième partie de la chaîne, comment puis-je obtenir?
Plus D'Infos:
J'ai créé les deux méthodes de ma Classe, mais lors du chargement de la vue, j'obtiens une erreur, détails ci-dessous:
def serie
@serie || cedula.to_s.split('-').[0] : @serie
end
def identificador
@identificador || cedula.to_s.split('-').[1] : @identificador
end
def verificador
@verificador || cedula.to_s.split('-').[2] : @verificador
end
SyntaxError in TecnicosController#index
/home/lurraca/Desktop/rails_project/ArLink/app/models/tecnico.rb:7: syntax error, unexpected '['
@serie || cedula.to_s.split('-').[0] : @serie
^
/home/lurraca/Desktop/rails_project/ArLink/app/models/tecnico.rb:11: syntax error, unexpected '['
...dor || cedula.to_s.split('-').[1] : @identificador
... ^
/home/lurraca/Desktop/rails_project/ArLink/app/models/tecnico.rb:15: syntax error, unexpected '['
@verificador || cedula.to_s.split('-').[2] : @verificador
Notez que l'erreur de syntaxe est la spécification de la
'['
comme inattendu. Les indices dans les tableaux de ne pas utiliser .[]
format, au lieu de cela, ils devraient être []
.OriginalL'auteur Luis D Urraca | 2011-07-03
Vous devez vous connecter pour publier un commentaire.
La
split
méthode renvoie un tableau, de sorte que vous pouvez accéder au deuxième élément de la même manière que vous le feriez obtenir le deuxième élément de tout autre tableau:array[1]
. Aussi, à l'aide de la||
barre peut rendre votre code plus simple. Essayez ceci:Vous obtenez des erreurs de syntaxe parce que vous n'avez pas de copie de mon code exactement! Il devrait y avoir aucune période avant la
[
.Comment sur l'utilisation de
||=
ici pour enregistrer les résultats pour plus tard invocations?Les travaux de cette. Mon mauvais avec l'erreur de syntaxe lors de la copie, les données sont persistantes dans ma db. Une question que je vais avoir est en essayant de modifier une instance du modèle, le champ cedula n'est pas affiché dans mon point de vue.
Merci! Je l'ai eu.
OriginalL'auteur David Grayson
Pourquoi ne pas les mettre tous à la fois?
Vous pouvez faire d'eux des attributs via
attr_accessor
ouattr_reader
si vous voulez toujours y accéder par l'intermédiaire des méthodes.OriginalL'auteur Mark Thomas
split
retourne un tableau.OriginalL'auteur Dex
Split divise une chaîne en un Tableau. Les éléments d'un tableau peut être accédé de la manière suivante:
tableau[0], tableau[1] etc...
Un tableau commence à partir de 0.
OriginalL'auteur denysonique