Ruby on rails 如何在“show”页面以及第二个较大的部分中呈现小部分
我有一个简单的博客应用程序 我使用部分Ruby on rails 如何在“show”页面以及第二个较大的部分中呈现小部分,ruby-on-rails,Ruby On Rails,我有一个简单的博客应用程序 我使用部分\u post.html.erb在我的索引页面中呈现帖子 \u post.html.erb有一个divclass=submission\u details,它与我的show操作中使用的内容相同。 我如何将该部分拆分,以便在\u post.html.erb部分和show.html.erb页面中使用它 posts\u controller.rb def index @posts = Post.all end def show @post = Post.
\u post.html.erb
在我的索引页面中呈现帖子
\u post.html.erb
有一个divclass=submission\u details
,它与我的show
操作中使用的内容相同。
我如何将该部分拆分,以便在\u post.html.erb
部分和show.html.erb
页面中使用它
posts\u controller.rb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
posts/index.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
这是由
render'shared/submission\u details'
为show
操作渲染的,但在索引中给了我零。如何为索引
操作正确定义@post?在分部上,可以定义一个局部变量,渲染分部时,正确的语法为:
render(partial: 'post_information', locals: { post: @post }
但这可以缩写为
render('post_information', post: @post)
对于show操作,在部分\u post.html.erb的情况下,您的post实例不在变量@post上,而是在局部变量post上,因此您可以执行以下操作:
render('post_information', post: post)
posts/index.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
posts/\u post.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
posts/show.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
posts/\u post\u information.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
提交人
在分部上,可以定义一个局部变量,渲染分部时,正确的语法为:
render(partial: 'post_information', locals: { post: @post }
但这可以缩写为
render('post_information', post: @post)
对于show操作,在部分\u post.html.erb的情况下,您的post实例不在变量@post上,而是在局部变量post上,因此您可以执行以下操作:
render('post_information', post: post)
posts/index.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
posts/\u post.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
posts/show.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
posts/\u post\u information.html.erb
def index
@posts = Post.all
end
def show
@post = Post.find(params[:id])
end
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
</div>
<%= time_ago_in_words(@post.created_at) %>
<span id="submission_details_<%= @post.id %>">
submitted by <%= link_to "#{@post.user.name} (#{@post.user.reputation_for(:points).to_i})", @post.user %>
</span>
<%= render @posts %>
<%= post.title %>
<div class="submission_details">
<%= render 'post_information', post: post %>
</div>
<%= @post.title %>
<%= @post.content %>
<div class="submission_details">
<%= render 'post_information', post: @post %>
</div>
<%= time_ago_in_words(post.created_at) %>
<span id="submission_details_<%= post.id %>">
submitted by <%= link_to "#{post.user.name} (#{post.user.reputation_for(:points).to_i})", post.user %>
</span>
提交人
谢谢@rorra。一旦你得到了答案,它看起来总是那么容易!欢迎光临,这只是一个小小的练习,一定要经常回到rails指南上,关于partials的文档已经打开了。谢谢@rorra。一旦你得到了答案,它看起来总是那么容易!欢迎光临,这只是一个小小的练习,请确保不时回到rails指南中,关于partials的文档已经打开了。