词汇:new

adj. 新的,新鲜的;更新的;初见的

相关场景

20. Hash的初始值:
Hash.new(10); h[:missing_key] => 10; h={}; h[:weekdays] = h.fetch(:weekdays, []) << "Monday" ---> ["Monday"]
>> Effective Ruby
18. 标准库里面的Set:
Array#include? 的时间复杂度是O(n),数量变多,时间就边长。Hash#include? O(log n); Hash[permissions.map{|p|} [p,true]]; require('set'); @permissions= Set.new(permissions) ; Set是一个无序容器。有序容器SortedSet类。如果不需要顺序,又存在很多条记录要判断是否Include?(x),那么Set是最好的选择。
>> Effective Ruby
15.优先使用实例变量:
@@开头的变量是类变量,bind在类上。; 单例模式;private_class_method(:new, :dup, :clone) def self.instance @@single ||= new; 其实类方法是一个假象,类方法实际上是一个类的对象的实例方法。Singleton模块作为Ruby标准库的一部分;require('singleton'); class Configuration include(Singleton) end;
>> Effective Ruby
His own mornings are new surprises to God.
>> Stray Birds
11.namespace:
定义类和打开修改类是一种写法,ruby里的类是可以修改的。命名空间是一种保证常量唯一性的方式。module Notebooks; sytle= Notebooks::Binding.new; ::Array 和 Cluster::Array 是不同的;Object::Array === ::Array; 命名空间就是为了程序之间的和平相处。
>> Effective Ruby
10. Struct or Hash:
key-value 用hash; hash 作为公共接口是没有访问限制的。Reading = Struct.new(:data, :high, :low); Reading.new(Date.parse(..),..,..) Struct是属性列表;里面也可以定义方法; 将Struct返回值设置为常量,像类一样使用他。
>> Effective Ruby
As we edit a new dependency, we can hop back in ,reload, and now we're good to go here. as you can see, I first tried to put in a wrong password, we're gonna get this screen, try another email address or password.
>> Rails 8.0.1 You are in good company
And then, we do the authentication using the email address and passwords, and start a new session from there.
>> Rails 8.0.1 You are in good company
And then, we are going to hop in here and have a look at what was actually generated. We have the sessions controller, that's probably the most important. You can see here, it allows unauthenticated access to just new and create.
>> Rails 8.0.1 You are in good company
Now I'm gonna deploy this on my own little hoppy server. And that hoppy server is currently wiped. it is completely clean, and Ubuntu 24.04 setup that has nothing on it already, this is part of the magic of Kamal, you can spin up a new VM anywhere in the cloud or use your own hardware and point Kamal straight to it, and you'll be going in no time!
>> Rails 8.0.1 You are in good company
And if we hop into our comment, we can set up a broadcast_to for that post. The broadcast_to will broadcast all update made to that comment, whether a new comment is updated or an existing comment is changed in some way or even one deleted, and send it back out to a channel on action cable named after the post association that this comment belongs to!
>> Rails 8.0.1 You are in good company
Now, let's set things up to be dynamic, such that when we add a new comment to one of these, it's going to update the other as well. This is how we use web sockets in Rails using action cable, one of the frameworks that we have to create updates that are distributed automatically without folks having to reload their browser.
>> Rails 8.0.1 You are in good company
All right, let's save that and hop back into our browser. Oop! I made a mistake here! When we generated the resource,it added a route for the new comments,but that route was not nested by default. We actually need to go into our routes.rb, that resource we added needs to be nested.
>> Rails 8.0.1 You are in good company
Now that we have that up, we can hop in and look it all up into the show action for the posts! That's gonna reference that common slot comments, that includes both the comments and the new form.
>> Rails 8.0.1 You are in good company
And then finally, let's paste in the form that we're gonna use. That form is going off a model, the new comment, but it's nested underneath the post, is that we automatically can deduce which URL that we should post this new form to.
>> Rails 8.0.1 You are in good company
It'll automatically know that the comment model should map to view slash comment slash comment, so it can look up the right partial file to use. And then below that, we have the form that we're referencing with the comments new. So, let's hop in and paste in the individual comment. As you can see here, we just give it a div, that has a dom ID so that we can reference it.
>> Rails 8.0.1 You are in good company
16:03:
Now, we're also gonna add a number of partials here. This is the templating system, basically, a sub-routine that you can refer to. There's gonna be three of them that includes the entire comment section. We're gonna reference that in our post show in just a second. And within that, we're gonna refer to another partial for an individual comment, and another partial again for the new setup. So, let's paste some of that in here, You can see this for the entire collection, it just has an H2 for the comments, and we render the post comments. This again uses Rails' convention over the configuration approach.
>> Rails 8.0.1 You are in good company
Alright! Now let's add some comments to our blogging system! And I'm gonna use a different generator here,I'm gonna use a resource generator that is a little lighter than the one we were using for scaffold that doesn't generate a bunch of views, and doesn't generate all sorts of actions in the controller by default, but it does generate the new model that we need the comment model, it generates a migration for that, create comments ,and it generates just some empty placeholders for the comments controller and for the view action.
>> Rails 8.0.1 You are in good company
But before we can do that, let's change the text area we had in the form here for our new post to be a rich text area. "form.rich_textarea :body". That's basically all you have to change, and let's save that and hop back into creating a new post.
>> Rails 8.0.1 You are in good company
Now you have access to your entire domain model. So if we find the first post that we created, we can update that post straight here from the console, if we hop back, you see, title is now changed from CLI. New command line interface ( CLI)
>> Rails 8.0.1 You are in good company
This is the thing you're gonna see, when you start up a new Rails application, it'll tell you which version you're on, both for the ruby version, the Rails version, and the Rack version. That's running on localhost:3000 by default. But if we do slash posts here, you'll see the scaffold interface that we generated. Now, this is the index action, the one we just looked at in the view and from the controller. But if we click the New, you see here we have form for creating the new post with its title and its body. it's quiet basic, to put it mildly right now, but all the actions are mapped out. This scaffold interface is not meant for shipping into production, it is meant to showing you how to build a Rails application with the basics, and then you make it look pretty, you make it look nice.
>> Rails 8.0.1 You are in good company
If we jump into the post model, you'll see there's actually nothing here. Everything in the post model is made available through introspection. So, a new post model will look at the schema for that table, and it will know that there is a title and there is a body, and we can access that title and that body directly through this post object.
>> Rails 8.0.1 You are in good company
find it straight off an ID:
And if you scroll down here, you can see we have everything served in two flavors, we have both the HTML setup that'll render views directly, and then you have JSON that'll render for and an API. And as you can see here, we're also setting up a new post for some of those actions that require that, we're gonna find it straight off an ID passed in through the URL, and the post parameters are the ones we're using when we're creating and updating the application.
>> Rails 8.0.1 You are in good company
All post controllers follow the same convention. There are seven actions, you have index,show, new, edit, create and update and destroy! So there form a basic setup for configuring everything that's needed for a resource to be exposed to the web.
>> Rails 8.0.1 You are in good company
So, let's jump into the post controller first. The controller is really what guides all the inbound actions you get into a Rails application, you'll have the user hitting (slash)/posts or /post/new, and it gets routed into the posts controller!
>> Rails 8.0.1 You are in good company