クリックするとブール値フィールドを切り替える link_to があります。問題は、ページが更新またはロードされたときにトグルすることです。コードは次のとおりです。
ストーリー/show.html.erb
<div id="story">
<%= render @story %>
</div>
_story.html.erb
<div id="storyShow">
<% if story.user == current_user %>
<%= render 'stories/published', { :story => story } %>
<% end %>
</div>
stories_controller.rb
def toggle_published
@story = Story.find(params[:id])
@story.toggle!(:published)
end
application_helper.rb
def published_link_text(publishable)
publishable.published? ? 'Published' : 'Un-Published'
end
_published.html.erb
<% if story.published? %>
<span id="publishedSwitchGreen" class="greenText">
<%= link_to published_link_text(story),
toggle_published_story_path(story), :remote => true, :id => "story_publish#{story.id}" %>
</span>
<% else %>
<span id="publishedSwitchRed" class="redText">
<%= link_to published_link_text(story),
toggle_published_story_path(story), :remote => true, :id => "story_publish#{story.id}" %>
</span>
<% end %>
toggle_published.js.erb
$("#story_publish<%= @story.id %>").text("<%= published_link_text(@story) %>");
ルート.rb
resources :stories do
get 'toggle_published', :on => :member
end