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> 

故事控制器.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

我不小心将我的切换调用粘贴到了控制器的 Show 动作中,所以每次故事显示时,它都会切换。

于 2012-05-24T21:04:58.993 回答