gpt4 book ai didi

ruby-on-rails - acts_as_follower 无法与我的 Rails3.2 应用程序正常工作

转载 作者:行者123 更新时间:2023-12-01 04:56:53 25 4
gpt4 key购买 nike

由于我启用了远程 true,它应该立即将切换按钮“关注”更改为“取消关注”。
但事实并非如此。如果我重新加载页面,切换按钮会显示更改后的标签。
所以这意味着它实际上改变了后台的follow列的值。
我已经为此花了 3 天,但我仍然不知道:(
谁能帮我解决这个问题吗?代码有什么问题吗?或者我缺少一些 JQuery 文件?我是 Rails 新手...

gem 文件

...
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby

gem 'uglifier', '>= 1.0.3'
gem 'jquery-ui-rails'

end

gem 'jquery-rails'

...

Assets /javascripts/application.js

...
//= require twitter/bootstrap
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_tree
...

views/shared/_follow_user.html.erb

<% unless user == current_user %>
<% if current_user.following?(user) %>
<%= link_to sanitize('<i class="icon-remove icon-white"></i> ') + 'Un-Follow', user_follow_path(user.to_param, current_user.get_follow(user).id), :method => :delete, :remote => true, :class => 'btn' %>
<% else %>
<%= link_to sanitize('<i class="icon-ok icon-white"></i> ') + 'Follow', user_follows_path(user.to_param), :remote => true, :class => 'btn btn-primary' %>
<% end %>
<% end %>

views/users/create.js.erb

$('#follow_user').html('<%= escape_javascript(render :partial => "shared/follow_user", :locals => {:user => @user}) %>');

views/users/destroy.js.erb

$('#follow_user').html('<%= escape_javascript(render :partial => "shared/follow_user", :locals => {:user => @user}) %>');

Controller /follows_controller.rb

class FollowsController < ApplicationController

def create
@user = User.find(params[:user_id])
current_user.follow(@user)
end

def destroy
@user = User.find(params[:user_id])
current_user.stop_following(@user)
end

end

config/routes.rb

...
resources :users, :only => [:index, :show] do
resources :follows, :only => [:create, :destroy]
end
...

模型/user.rb

class User < ActiveRecord::Base

...

acts_as_follower
acts_as_followable

...

end

views/users/show.html.erb

<h1>Users#show</h1>

<p id="notice"><%= notice %></p>

<p>
<b>User:</b>
<%= @user.user_profile.user_id %>
</p>

<p>
<b>Language:</b>
<%= @user.user_profile.language_id %>
</p>

<p>
<b>Country:</b>
<%= @user.user_profile.country_id %>
</p>

<p>
<b>Prefecture:</b>
<%= @user.user_profile.prefecture_id %>
</p>

<p>
<b>Gender:</b>
<%= @user.user_profile.gender_id %>
</p>

<p>
<b>Nickname:</b>
<%= @user.user_profile.nickname %>
</p>

<p>
<b>Introduction:</b>
<%= @user.user_profile.introduction %>
</p>

<p>
<b>Picture url:</b>
<%= @user.user_profile.picture_url %>
</p>

<% if user_signed_in? %>
<div id="follow_user">
<%= render :partial => "shared/follow_user", :locals => {:user => @user} %>
</div>
<% end %>

最佳答案

您忘记将渲染放入跟随 Controller 中。

这里是我的测试代码,我使用了一些您的代码,但我使用 RubyCas-Server 作为身份验证层。

所以只需检查 Controller 、 View :)

https://github.com/senayar/follower

关于ruby-on-rails - acts_as_follower 无法与我的 Rails3.2 应用程序正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13768309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com