我正在使用https://gorails.com/forum/switch-state-of-boolean-field作为指导来切换布尔值。我使用partial来显示所有对象,但只有第一个对象切换布尔值。此外,ajax无法正常工作,我必须刷新页面以显示新的布尔值。
这是posts_controller:
def toggle_confirm
respond_to do |format|
format.html
format.js
end
@post = Post.find_by(params[:id])
@post.toggle!(:confirm)
end
以下是views / shared / _received_feed partial:
<ol class="posts">
<% @received_feed.each do |feed| %>
<%= render feed %>
<%= link_to "#{ feed.confirm ? 'Confirmed' : 'Disabled' }", toggle_confirm_post_path(feed), method: :patch, remote: :true, class: "btn btn-xs btn-#{ feed.confirm ? 'success' : 'warning' }" %>
<% end %>
</ol>
以下是views / toggle_confirm.js.erb:
console.log(<%= @post.confirm %>);
<% if @post.confirm == true %>
$(".post-<%= @post.id %> >
a").html('3Confirmed').removeClass('btn-warning').addClass('btn-success')
<% else %>
$(".post-<%= @post.id %> > a").html('Not
Confirmed').removeClass('btn-success').addClass('btn-warning')
<% end %>
$("#post-status-<%= @post.id %>").html("<%=
@post.confirm %>")
以下是显示每个帖子视图/帖子/ _posts的部分内容:
<li id="post-<%= post.id %>">
<span class="user"><%= post.sender.name %></span>
<br>
<span class="image"><%= image_tag post.sender.avatar.url(:thumb) %>
</span>
<br>
<span class="note"><%= post.note %></span>
<br>
</li>