词汇:let

vt. 允许,让;出租;假设;妨碍

相关场景

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
When it is nested, we get the fact that it's gonna be slash post slash on slash comments, and we have the association is set up nicely. Now, let's reload! Now it works, we have our comments field underneath. we can add the first comment. And as you can see here, this is my first comment a second ago that was the local time doing its time ago conversion.
当它被嵌套时,我们得到的事实是,它将是斜线后斜线对斜线注释,并且我们已经很好地建立了关联。现在,让我们重新加载!现在它工作了,我们在下面有我们的评论字段。我们可以添加第一条评论。正如你在这里看到的,这是我一秒钟前的第一条评论,当时当地时间正在进行时间转换。
>> 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
And your comment is just be a text area for content. We could have made this a rich text field as well, but let's keep things simple and just keep it in plain text!
>> 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
So let's actually also create the other direction of this association. You saw a comment belongs to a post, but then we're also gonna make the post has many comments. Now, we have a bidirectional association that we can work with in both ways.
>> Rails 8.0.1 You are in good company
So, let's run the migration for that, that sets up the comments table. You can see here the schema that we've now built up. We've added a number of tables for action text and action storage. And then, we have added a comments table. That's what you can see here. As we had it in the migration where we were just referencing the post as a foreign key, and then we had the content as text.
>> 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 now that we've add that, let's have a look at our application JS file.That's the default setup that you have that the scaffold is going to use. And as you can see, we're using turbo-rails, we're including all the stimulus controllers, if we have any.
>> Rails 8.0.1 You are in good company
Now, let's add a bit of custom JavaScript. Rails by default ships with Hotwire! Hotwire gives you Turbo, which is a way of accelerating page changes and updates is that your application will feel as fast and as smooth as a single page application without you basically having to write any JavaScript at all.
>> Rails 8.0.1 You are in good company
As you can see here, there is now a full WYSIWYG interface for creating the body. It comes with a default set of styles for the toolbar, you can change those, those styles are generated straight into your application, so you can make it look nice for yourself. Let's give some bold and italic text here, you see, that was all that was needed. but I think what's even nicer to look at here is if we do an upload and we add a file, you will see that file gets added with a preview directly to the WYSIWYG editor. And if we save that and we update the post, it is added to the post itself. And that then went through the whole process of doing a direct upload of the file when we dropped it into the editor, that uploads it straight to active storage. And then, we have access to that, and rendering it directly from whatever storage backend active storage is using. In this example , we're just storing on disk, but you could be storing your active storage in S3 or another object storage.
>> 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, let's install something else here, let's install action_text, that is one of the frameworks that's part of Rails, but it's not set up by default, but you can set it up by running rails action_text:install, that's going to give you a WYSIWYG editor. That's currently powered by Trix! The open source, what you see is what you get editor made in JavaScript! And it also sets up active storage!
>> Rails 8.0.1 You are in good company
And you can help diagnose whatever issue that it is that you have ! But let's remove that again and then let's look at the console from another angle. Now, you can get the console as I just showed you when an exception raised, but you can also get the console if you just run rails console.
>> Rails 8.0.1 You are in good company
console instance variables:
Now, let me show you one of the first feature here. If we do raise exception inside the index action, "rails 'some exception' " you will see that Rails provides some really nice interface for dealing with that exception, seeing exactly where it happened. If I'm reloading here, you can see the line, it was raised on the source code that's around it, you can see a full trace. And down here, we even have a console! So, you can interact with the instance variables that have been set for this index actions, here's just at posts that's been made available.
>> Rails 8.0.1 You are in good company
variant:
But oh yeah! Let's show you real quick here,if you do a /post.json, you're gonna get that automatic API as well, as I showed you in the controller, there are two different paths, you have HTML, and you have JSON. You could also have added XML in there or another path, but by default, you just get these two different variants, the HTML and the JSON variant.
>> 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
That post is just going to have a title that's string and a body that's a text, and as you can see here from what's being generated, we have everything that we need to set up a basic interface for that scaffold. There is a migration that'll set things up in the database. There is a controller, there are views, there's a model, there's even testing stubs and adjacent API on top. So let's run that migration, and as you can see here, we created the posts in the main schema file, and now, we're ready to have a look at the application that was generated here with the post scaffold.
>> Rails 8.0.1 You are in good company
We're gonna start by running 'rails new blog' to get the basic Rails skeleton, let's hop into that skeleton, and then we're gonna generate a scaffold for a post.
>> Rails 8.0.1 You are in good company
Welcome to Ruby on Rails. If you are looking to go from Hello World to IPO, you've come to just the right place. I'm gonna build a simple application that shows you the basic of Ruby on Rails and how you put it into production. Let's go.
>> Rails 8.0.1 You are in good company
And what a time now for us to take this dream and not let it die.Take this dream and give it life.Take this dream and breathe into it your own personal spirit. Until finally it becomes a flame that burns around the whole world. Let's go, do it now.
现在是我们实现这个梦想,不让它消亡的时候了。接受这个梦想,赋予它生命。接受这个梦想,把你自己的个人精神注入其中。直到最后,它变成了一团在全世界燃烧的火焰。我们走吧,现在就去。
>> Why not you? why not now?
Let me give you a little tour.
>> Social Language
Let me now try to summarize everything I've said in the last 10-15 minutes or so. And I'll summarize it in one sentence. And we'll wounder why it took me that long. We acquire language in one way and only one way. When we get comprehensible input in a low anxiety environment.
>> comprehensible input - One way only one way to acquire a language