2010-11-30 18 views
6

Soy un novato en Rails. Creé un controlador y una acción. En la vista correspondiente utilicé <% = pone "asd"%> una vez y <% = p "asd"%> la otra vez.Diferencia entre p en una vista de carriles y puts

En caso de que id lo muestre en la consola y en caso de p se muestre como HTML. ¿Cuál es la razón posible?

+0

Sugerencia para el novato: "Rails" no se escribe en TODOS LOS MAYÚSCULAS. –

Respuesta

11

puts llama al método to_s p llama al método inspect

class Foo 
    def to_s 
    "In #to_s" 
    end 
    def inspect 
    "In #inspect" 
    def 
def 

Semánticamente, to_s se entiende a la salida de la representación del objeto para el usuario, e inspeccionar para insinuar acerca de las propiedades internas del objeto (un poco como Python's repr), pero eso es solo una convención.

Si desea inspeccionar algo en el código HTML uso <%= debug "something" %>

3

creo que usted encontrará que las salidas p método para la consola también, pero la razón por la que está "representa como HTML" se debe a que el método devuelve el valor p aprobada en donde puts no.

p es la versión más corta de puts something.inspect y es muy útil para la depuración y eso es todo. Para la salida de cadenas a la consola, es más preferible usar puts.

Cuestiones relacionadas