我之前从未编程过,并且很难让link_to
在我的Rails 3应用内部的用户个人资料中呈现相应的:partial
。总而言之,有三个部分:
_profile_credits
。)我想要点击以下内容:
<li><%= link_to "Credits", profile_credits_profile_path(:id => @profile.id), :remote => true %></li>
并加载以下部分(_profile_credits)并在@ user.credits中呈现每个信用:
<% for credit in @user.credits %>
<div class="credit">
</div>
<% end %>
我正在尝试渲染部分位于链接下方和div容器内部。下面的HTML显示了div中链接的位置以及我想要加载部分内容的信息:
<div id="tabs">
<ul id="infoContainer">
<li><%= link_to "Reviews", profile_reviews_profile_path(:id => @profile.id), :remote => true %></li>
<li><%= link_to "About", profile_about_profile_path(:id => @profile.id), :remote => true %></li>
<li><%= link_to "Credits", profile_credits_profile_path(:id => @profile.id), :remote => true %></li>
</ul>
<div id="tabs-1">
##load information from the partials inside `<div id="tabs-1">
</div>
</div><!-- end tabs -->
我剩下的代码......
我的profiles_controller#profile_credits
行动:
def profile_credits
respond_to do |format|
format.js { render :layout => false }
end
end
在我的routes.rb
:
resources :profiles do
get :profile_credits, :on => :member
end
我的profile_credits.js.erb
:
$( "#tabs" ).html( "<%= escape_javascript( render (:partial => "profile_credits", :locals => { :id => @profile.id } ) ) %>" );
当我点击链接时,没有任何反应。我已经尝试过遵循各种Rails 3 UJS示例,但无法得到它。有一次,我在ProfilesController profile_credits
操作中指定了更多。但是,如果我在其他人的个人资料中加载了我的信用,而不是我正在浏览其个人资料的用户的信用。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
我终于开始工作了。如果<div>
包含<ul>
导航和加载内容的<div>
,则以下是我的代码:
我的容器的HTML:
<div id="tabs">
<ul id="infoContainer">
<li><%= link_to "Reviews", profile_reviews_profile_path, :remote => true %></li>
<li><%= link_to "About", profile_about_profile_path, :remote => true %></li>
<li><%= link_to "Credits", profile_credits_profile_path, :remote => true %></li>
</ul>
<div id="tabs-1">
<%= render :partial 'profile_reviews %> #default
</div>
</div><!-- end tabs -->
_profile_credits.html.erb
部分:
<% for credit in @user.credits %>
<div class="credit">
</div>
<% end %>
<强> profile_credits.js.erb
强>
$( "#tabs-1" ).html( "<%= escape_javascript( render (:partial => "profile_credits" ) ) %>" );
profile_credits.rb
控制器:
def profile_credits
@profile = Profile.find(params[:id])
@user = User.find(@profile.user_id)
@credits = User.find(@profile.id).credits
respond_to do |format|
format.html { render :layout => nil }
format.xml
format.js { render :layout => nil }
end
end
这样做了。