gpt4 book ai didi

ruby-on-rails - yields 如何知道在哪里获取正确的 html 片段?

转载 作者:太空宇宙 更新时间:2023-11-03 18:06:18 26 4
gpt4 key购买 nike

我开始摆弄 ruby​​,而且我的 Web 开发经验很少。我试图了解 ruby​​ 代码注入(inject)如何与 yield 片段一起使用。我一直在破解谷歌的示例书代码

https://github.com/GoogleCloudPlatform/getting-started-ruby/blob/master/5-logging/app/views/layouts/application.html.erb

我目前正在主视图/布局/目录中查看这段代码

<div class="container">
<% if flash.any? %>
<% flash.each do |type, message| %>
<div class="alert alert-<%= type %>"><%= message %></div>
<% end %>
<% end %>
<%= yield %>
</div>

我一直在搞清楚 yield 如何链接到/view/books/index.html.erb

https://github.com/GoogleCloudPlatform/getting-started-ruby/blob/master/5-logging/app/views/books/index.html.erb

     <h3>Books</h3>

<%= link_to new_book_path, class: "btn btn-success btn-sm" do %>
<i class="glyphicon glyphicon-plus"></i>
<span>Add Book</span>
<% end %>

<% @books.each do |book| %>
<div class="book media">
<%= link_to book_path(book) do %>
<div class="media-left">
<img src="<%= book.image_url %>">
</div>
<div class="media-body">
<h4><%= book.title %></h4>
<p><%= book.author %></p>
</div>
<% end %>
</div>
<% end %>

<%= render "pagination_link" %>

<% if @books.none? %>
<p>No books found.</p>
<% end %>

这里有一个rake routes,所以你不必运行它

           rake routes
Prefix Verb URI Pattern Controller#Action
books GET /books(.:format) books#index
POST /books(.:format) books#create
new_book GET /books/new(.:format) books#new
edit_book GET /books/:id/edit(.:format) books#edit
book GET /books/:id(.:format) books#show
PATCH /books/:id(.:format) books#update
PUT /books/:id(.:format) books#update
DELETE /books/:id(.:format) books#destroy
login GET /login(.:format) redirect(301, /auth/google_oauth2) auth_google_oauth2_callback GET /auth/google_oauth2/callback(.:format) sessions#create
session POST /session(.:format) sessions#create
DELETE /session(.:format) sessions#destroy
user_books GET /user_books(.:format) user_books#index
logout GET /logout(.:format) sessions#destroy
root GET / books#index

最佳答案

yield 是 Ruby 的 block syntax 的一部分.

def hello
"Hello, #{yield}!"
end

> hello { "World" }
# => "Hello, World!"

在此示例中,hello 方法屈服于我们传入的 block 以获取值,并将其添加到字符串中。

将模板视为一种特殊类型的文件,用于创建生成 html 的函数。布局和部分是将模板相互嵌入的方式,就像您可以从另一个函数中调用一个函数一样。

你的模板是由 Controller 渲染的,所以它知道需要渲染什么 View ,它根据 Rails conventions 属于什么布局。 .

关于ruby-on-rails - yields 如何知道在哪里获取正确的 html 片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44814967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com