簡體   English   中英

如何在Ruby on Rails中創建多個索引頁面

[英]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一起plansplans ,那么您將能夠擁有所需數量的計划。

這是考慮編程的正確方法(制造系統 ,而不僅僅是快速修復),然后可以根據需要使用該方法來擴展功能。

刪除條件的一種好方法是使用計划名稱來查找部分條件。 就像這樣

<div class="col-md-6">
  <%= render partial: "pages/#{current_user.plan.name}" %>
</div>

但是,您需要確保每個計划都有其正確的部分文件。 否則,將出現渲染錯誤,因為未找到部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM