1

クリックするとブール値フィールドを切り替える 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
4

1 に答える 1

0

コントローラーの[表示]アクションで誤ってトグル呼び出しを貼り付けたため、ストーリーが表示されるたびにトグルしていました。

于 2012-05-24T21:04:58.993 に答える