[英]How to create more than one index page in Ruby on Rails
我有兩個不同的計划(ID為1的計划和ID為2的計划)。 我已經根據用戶登錄的計划為每個頁面創建了一個局部頁面。 我想為每個計划創建兩個不同的索引頁面。
計划ID 1用戶需要定向到計划ID為2的用戶的索引,而計划ID 2用戶需要定向到計划ID為1的用戶的索引。這是控制代碼ID的部分。特征。 單擊相對部分后,如何創建將計划ID 1和計划ID 2用戶發送到不同頁面的索引功能?
頁/ home.html.erb
<div class="col-md-6">
<% if current_user.plan.name == "mentor" %>
<%= render partial: "pages/mentor" %>
<% else %>
<%= render partial: "pages/mentee" %>
<% end %>
</div>
頁/ _mentee.html.erb
<div class="well">
<h2 class="text-center">Mentor Community</h2>
<h4 class='text-center'>Get the support you need.</h4>
<br><%= link_to "Find a Mentor", "#", class: 'btn btn-default btn-lg btn-block' %>
</div>
頁/ _mentor.html.erb
<div class="well">
<h2 class="text-center">Mentee Com</h2>
<h4 class='text-center'>Give the support that's needed.</h4>
<br><%= link_to "Find a Mentee", "#", class: 'btn btn-default btn-lg btn-block' %>
</div>
做這個:
#config/routes.rb
root "pages#home"
resources :plans, only: :show #-> url.com/plans/1
#app/controllers/plans_controller.rb
class PlansController < ApplicationController
def show
@plan = Plan.find params[:id]
end
end
#app/views/plans/show.html.erb
<% @plan.users.each do |user| %>
<%= user.name %>
<% end %>
單擊相對后
您可以使用以下方法將用戶定向到特定的計划頁面:
#app/views/pages/home.html.erb
<% @plans.each do |plan| %>
<%= link_to plan.id, plan %>
<% end %>
有這么多 ,你需要考慮,但現在,上面應該可以幫助您對整體結構的理解。
讓我來解釋一下您如何適應自己的想法(這似乎不合時宜,但是我可以保證,對您有很大幫助)...
以上是導軌是如何意味着工作-這需要請求來自用戶,它匹配對一個控制器的操作,然后與模型數據填充它。
Rails的正確工作方式是稱為面向對象的編程 -每次啟動動作/請求時,它都必須調用和操作數據對象 。
盡管這看起來很復雜,但是您越早了解它,您就能越快地開發出更復雜的rails應用程序。
-
您的問題暗示您尚未考慮數據驅動的Rails應用程序的全部潛力。
沒關系,但是,如果您改變了方法,使您擺脫了pages
,而是與users
一起plans
了plans
,那么您將能夠擁有所需數量的計划。
這是考慮編程的正確方法(制造系統 ,而不僅僅是快速修復),然后可以根據需要使用該方法來擴展功能。
刪除條件的一種好方法是使用計划名稱來查找部分條件。 就像這樣
<div class="col-md-6">
<%= render partial: "pages/#{current_user.plan.name}" %>
</div>
但是,您需要確保每個計划都有其正確的部分文件。 否則,將出現渲染錯誤,因為未找到部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.