Ruby on rails 为什么阿贾克斯赢了';不是在节目上反省而是在指数上反省?
现在,如果我在索引页上按follow,按钮会立即将“follow”更改为“unfollow”。 但是,在展示页面上,什么都不会发生。 我怎样才能解决这个问题 views/users/show.html.erbRuby on rails 为什么阿贾克斯赢了';不是在节目上反省而是在指数上反省?,ruby-on-rails,ruby-on-rails-3,jquery,Ruby On Rails,Ruby On Rails 3,Jquery,现在,如果我在索引页上按follow,按钮会立即将“follow”更改为“unfollow”。 但是,在展示页面上,什么都不会发生。 我怎样才能解决这个问题 views/users/show.html.erb <h1>Users#show</h1> <p id="notice"><%= notice %></p> <p> <b>User:</b> <%= @user.user_pro
<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>
<p>
<b>Tag List:</b>
<% @user.tags.each do |tag| %>
<span><%= link_to tag.name, {:action=>'index', :tag=>tag.name} %></span>
<% end %>
</p>
<% if user_signed_in? %>
<div id="follow_user" data-user-id="<%= @user.id %>">
<%= render :partial => "follow_user", :locals => {:user => @user} %>
</div>
<% end %>
用户#显示
用户:
语言:
国家:
地方行政区域:
性别:
昵称:
导言:
图片url:
标签列表:
'index',:tag=>tag.name}%>
“follow_user”,:locals=>{:user=>@user}%>
遵循_controller.rb
class FollowsController < ApplicationController
def create
@user = User.find(params[:user_id])
current_user.follow(@user)
respond_to do |format|
format.js {render :action=>"create.js"}
end
end
def destroy
@user = User.find(params[:user_id])
current_user.stop_following(@user)
respond_to do |format|
format.js {render :action=>"destroy.js"}
end
end
end
class FollowsController“create.js”}
结束
结束
def销毁
@user=user.find(参数[:user\u id])
当前用户。停止跟踪(@user)
回应待办事项|格式|
format.js{render:action=>“destroy.js”}
结束
结束
结束
视图/用户/_follow_user.html.erb
<% unless user == current_user %>
<% if current_user.following?(user) %>
<%= button_to("Un-Follow", user_follow_path(user.to_param, current_user.get_follow(user).id),
:method => :delete,
:remote => true,
:class => 'btn') %>
<% else %>
<%= button_to("Follow", user_follows_path(user.to_param),
:remote => true,
:class => 'btn btn-primary') %>
<% end %>
<% end %>
:删除,
:remote=>true,
:class=>'btn')%>
是的,
:class=>'btn btn primary')%%>
views/follows/create.js.erb
$('.follow_user[data-user-id="<%=@user.id%>"]').html('<%= escape_javascript(render :partial => "follow_user", :locals => {:user => @user}) %>');
#jQuery
$('.follow_user[data user id=”“]).html(''follow_user',:locals=>{:user=>@user})%>');
#jQuery
views/follows/destroy.js.erb
$('.follow_user[data-user-id="<%=@user.id%>"]').html('<%= escape_javascript(render :partial => "follow_user", :locals => {:user => @user}) %>');
#jQuery
$('.follow_user[data user id=”“]).html(''follow_user',:locals=>{:user=>@user})%>');
#jQuery
views/users/index.html.erb
<%- model_class = User.new.class -%>
<div class="page-header">
<h1><%=t '.title', :default => model_class.model_name.human.pluralize %></h1>
</div>
<% @from %>
<h3>tag cloud</h3>
<% tag_cloud(@tags, %w(css1 css2 css3 css4)) do |tag, css_class| %>
<%= link_to tag.name, {:action=>'index', :tag=>tag.name}, :class => css_class%>
<% end %>
<%= paginate @users %>
<table class="table table-condensed">
<thead></thead>
<tbody>
<% @users.each do |user| %>
<div class="memberListBox">
<div class="memberList">
<p class="name"><span><%= user.user_profile.nickname %></span>(<%= user.user_profile.age %>)</p>
<p class="size"><%= user.username %></p>
<p class="img">
<% if user.user_profile.user_avatar? %>
<%= image_tag(user.user_profile.user_avatar.url(:thumb),:height => 100, :width => 100, :class => 'img-polaroid' ) %>
<% else %>
<%= image_tag('nophoto.gif',:height => 100, :width => 100, :class => 'img-polaroid' ) %>
<% end %>
</p>
<div class="introduction">
<%= user.user_profile.introduction %>
</div>
<% if user_signed_in? && current_user!=user %>
<div class="follow_user" data-user-id="<%= user.id %>">
<%= render :partial => "follow_user", :locals => {:user => user} %>
</div>
<% end %>
<%= link_to sanitize('<i class="icon-pencil icon-white"></i> ') + 'Message', new_messages_path(user.username), :class => 'btn btn-primary' %>
<%= link_to sanitize('<i class="icon-user icon-white"></i> ') + 'Profile', show_user_path(:username => user.username, :breadcrumb => @from), :class => 'btn btn-info' %>
</div>
</div>
<% end %>
</tbody>
</table>
model\u class.model\u name.human.pluralize%>
标签云
'index',:tag=>tag.name},:class=>css\u class%>
()
100,:width=>100,:class=>img polarioid')%>
100,:width=>100,:class=>img polarioid')%>
“follow_user”,:locals=>{:user=>user}%>
“btn btn主节点”%>
user.username,:breadcrumb=>@from),:class=>'btn btn信息'%>
视图包含一个带有follow\u user
ID的DIV
# views/users/show.html.erb
<div id="follow_user"...
# views/follows/create.js.erb
$('.follow_user[data-user-id=...
JS partial正在尝试选择跟随用户
类
# views/users/show.html.erb
<div id="follow_user"...
# views/follows/create.js.erb
$('.follow_user[data-user-id=...
啊,现在它工作了!!这里的阶级和身份有什么区别????为什么我需要使用class而不是id??class(
)标识一个或多个元素,而id(#
)正好标识一个特定元素。元素可以同时具有类和ID,可以有任意数量的类,但不能有多个ID。类选择器$('.selector')
选择类,ID选择器`$('.#selector')选择ID。类选择器不能选择ID,反之亦然。。。如果我的答案对你有用,别忘了接受。谢谢你美丽的解释!!所以当在视图中使用@时,我们应该使用class而不是id。对吗?不一定。类和ID只处理HTML元素;Ruby、Rails、视图和@
都无关紧要。我建议在这里使用一个类,因为JS代码段在包含多个follow\u user
DIV(索引页)的页面上被重用,所以ID没有意义。如果只涉及一个元素,就可以轻松地使用ID,但这里的情况并非如此。