Ruby on rails 无法从控制器渲染局部对象
我正在写一种博客,如果条件为真,我想从我的控制器中渲染一部分 这是我的控制器方法:Ruby on rails 无法从控制器渲染局部对象,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在写一种博客,如果条件为真,我想从我的控制器中渲染一部分 这是我的控制器方法: def comments_session render partial: 'comments/form' if signed_in? render partial: 'comments/show' end 这是我的观点: <%= comments_session %> 以下是我的部分: _show.html.erb <% @post.comme
def comments_session
render partial: 'comments/form' if signed_in?
render partial: 'comments/show'
end
这是我的观点:
<%= comments_session %>
以下是我的部分:
_show.html.erb
<% @post.comments.sort_by(&:created_at).reverse.each do |comment| %>
<div class="col-lg-12 mt-3 pt-3 border-top">
<% if signed_in? %>
<% if current_user.username == comment.user.username %>
<%= link_to 'Excluir', post_comment_path(@post, comment), :class =>"btn btn-sm btn-danger btn_round float-right border-dark",
method: :delete, data: {confirm: "Deseja realmente excluir esse comentário?"} %>
<% else %>
<% end %>
<% else %>
<% end %>
<h6><strong>~ <%= comment.user.username %></strong></h6>
<p class="comment"><%= comment.body %></p>
<p class="lead distance_of_time"><small>
<%= time_ago_in_words(comment.created_at) %>
</small></p>
</div>
<% end %>
和_form.html.erb
<%= form_with(model: @comment, url: [@post, @comment], local: true) do |f| %>
<% if @comment.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(comment.errors.count, "error") %> prohibited this comment from being saved:</h2>
<ul>
<% comment.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="row">
<div class="col-lg-10 form-group">
<%= f.text_area :body, :class =>"form-control", :placeholder =>"Escreva o Que Quiser!" %>
</div>
<div class="col-lg-1 form-group">
<%= f.submit "Comentar", :class =>"btn btn-lg btn-primary border-dark text-light" %>
</div>
</div>
<% end %>
该方法完美地呈现了_show.html.erb,但对另一个却没有这样做。。。
我试图更改并删除该条件,但无效:/
拜托,我想知道为什么我不能渲染它
谢谢 你能这样试试吗
def comments_session
return render partial: 'comments/form' if signed_in?
render partial: 'comments/show'
end
我认为您得到的是DoubleRenderError或类似的东西,Rails不允许在控制器中渲染多个部分
def comments_session
if signed_in?
render partial: 'comments/form'
else
render partial: 'comments/show'
end
end
发生这种情况是因为如果不返回,它会找到两个渲染,这是一个问题,它至少是不明确的