2020年2月18日 星期二

Rails Route_namespace(未完成)

https://ihower.tw/rails/routing.html#sec6
我的認知裡面這東西可以設定某種url,移花接木到另外一種controller上面,
功能為:使用者可以在“自己的后台”看过曾经发表的文章、以及创立的社团

想法與感想
namespace的用途就是創造一個url,配合上before_action,做出權限管控的功能。裡面可以放些想要的東西。是嗎?

  1. 第一確定model設定好了沒,因為model裡面有方法可以讓controller可以過濾條件,方便很多。而且在console裡面可以針對之後的controller提取條件做實驗。盡量不要在controller裡面牽扯到判斷。
  2. 第二要設定controller,承接的在console裡面的實驗成功,配合action(比如說index,show)可以設定條件,創造出實例變數,讓view可以提取。
  3. 第三設定網址,router。讓用戶可以從view中透過controller看到實例變數資訊。
  4. 第四設定view。View最後用沒關係。View可以在controller創造的時候一起設定出來。比如說。rails g controller account/groups index。  view裡面就引用controller提供的變數。

  1. 首先要先設定網址。因為網址是第一個會接觸到的內容。



使用namespace有三個步驟

建立controller,讓網址可以使用變數

$ rails g controller account/group或是rails g controller admin::jobs 用斜線/或是::兩個點都行。

在controller加上分派action
ctrlp>app/controllers/account/groups_controller.rb
class Account::GroupsController < ApplicationController
  before_action :authenticate_user!
  def index
    @groups = current_user.participated_groups   >>設定變數可以到相對應的網址取用
  end
end

建立router,對應的網址結構

  namespace :account do
    resources :groups
  end

建立namespace  下面的view

$touch app/views/account/groups/index.html.erb
看要怎樣使用controller裡面的變數....

沒有留言:

張貼留言

cloud9上面開發rails

 使用IAM身分登入,以免有資安問題。(用admin帳號登入,創建iam使用者,然後在上面的連結登入) 選擇 ubuntu18.04 減少查詢成本。 已經是超級使用者了,sudo 什麼都不需要輸入密碼了。 $ ruby -v  檢查 ruby使用的版本>>2.6.3,...