Ajaxified布尔字段在页面加载和刷新时切换

时间:2012-05-24 20:15:43

标签: ruby-on-rails-3 jquery

我有一个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) %>");

的routes.rb

  resources :stories do
    get 'toggle_published', :on => :member
  end

1 个答案:

答案 0 :(得分:0)

我不小心在控制器的Show动作中粘贴了我的切换调用,因此每次故事显示时,都会切换。