Um, perhaps you need to think about what you're saying.
You might not be familiar with PHP, and thus unfamiliar with how it how it handles objects, but it's pretty easy to guess how a framework would return all records from a query if you know anything about PHP. It would return an array of arrays. Perhaps the repeated array is an associative array, perhaps it is column indexed and there's another command to get the associative ones.
You know, like the actual commands the language itself has, which I know because, heh, I'm a PHP programmer and know the language.
I'm uncertain why fetchAll needs an array object passed as a parameter, I have to mentally replace the question mark with "public", then assume the second parameter is an order-by parameter since I see the DESC.
fetchAll would need an array object passed as a parameter because you might want to use multiple WHERE clauses, which I, OTOH, have no idea how to do in the Ruby example. Likewise, I have no idea how to do a LIKE instead of an =, whereas I can see how to do that in the PHP command. Don't bitch because the PHP framework command is more powerful than the Ruby one.
Likewise, while you don't know the format of the fetchAll() function, um, you're unlikely to magically know the format of the Post object, either.
I can't guess what _model is, I don't know what blogs really represents
Presumably $this->_model is how you look up the database framework, in the framework. But your confusion is because these two pieces of code aren't identical. The Ruby appears to be inside some sort of object that is already linked to the blog table (You'll notice it doesn't reference what table it's using at all.), whereas the PHP code to to call a function on that object. (Which is why, as I said, it was insanely stupid to write a function to do that, instead of just calling the existing function.)
If the PHP was actually on the object, it would be calling the fetchAll function like $this->fetchAll(array('status = ?' => 'public'), 'created DESC');
I'd give an example of what the PHP is doing in Ruby, but I have no idea how to access objects like that.
I'm fairly certain @posts is a plural set/object of more Post objects, which represents a row in a database, where status is public, then ordered descending. I can probably iterate through it. As an outsider, I could read this, lookup the column names for the row and almost immediately start using it.
And I, as a PHP programmer, have NO IDEA what a 'Post object' is or does. You somehow know it represents 'rows in a database'. Well, good for you, but that's not actually very intuitive at all. That's language knowledge you have. If you asked random people what a Post object would do to a database, most would guess 'insert and/or update a record'.
In fact, looking at it, I think you're wrong, and Posts represents the table itself, which means that @posts almost certainly is not an array of them. (Which means, instead of being inside a table object like I said above, we're in a database object or possible Post is some global object, although that seems like a very stupid name. Also, why is it capitalized if it's a table name? I have no idea.)
I do not know if blog is iterable or if it's rows it has grabbed are even accessible. $records may be the result of some manipulation it performs on the query result. I just don't know, and that makes me uncomfortable.
Yes, not knowing the exact syntax of a language does result in several questions. Just like, you know, any language.
And I urge you to actually read the paragraphs above, and compare your words:
'I'm fairly certain @posts is a plural set/object of more Post objects' vs 'if it's rows it has grabbed are even accessible'
'I can probably iterate through it.' vs. 'I do not know if blog is iterable'
'fairly certain...status is public, then ordered descending' vs. 'may be the result of some manipulation it performs on the query result'
So, essentially, you don't know anything about either, but because you know how Ruby works generally, you feel more sure about your Ruby guesses?
Well, that's certainly entirely true, and a perfectly valid reason for you to use Ruby. If you're more comfortable with the language, go for it. But don't pretend that's some actual language difference.