溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Ruby on rails初體驗(三)

發(fā)布時間:2020-08-06 06:39:55 來源:網(wǎng)絡(luò) 閱讀:233 作者:Steven__Fan 欄目:編程語言

     繼體驗一和體驗二中的內(nèi)容,此節(jié)將體驗二中最開始的目標來實現(xiàn),體驗二中已經(jīng)將部門添加的部分添加到了公司的show頁面,剩下的部分是將部門列表也添加到公司的顯示頁面,整體思路和體驗二中相同,但是還是會有點小問題,下面看具體實現(xiàn)。

     將app/views/departments/index.html.erb復制到app/views/companies/_department_list.html.erb,在company的show.html.erb頁面模版中添加如下代碼:

1 <%= render :partial => "department_list" %> 

 company的show.html.erb頁面模板如下:

  Ruby on rails初體驗(三)

      瀏覽頁面出現(xiàn)如下問題,跟昨天的問題一樣,因為變更了控制器,@department實例變量沒有初始化,需要添加一個局部變量。  

1 <%= render :partial => "department_list", :locals => { :departments => Department.find(:all)}%>

     將_department_list.html.erb中循環(huán)的實例變量改為局部變量:    

1 <% departments.each do |department| %>  

 

 

Ruby on rails初體驗(三)大概就是這個樣子,但是有2個問題:

         1:在添加部門的頁面中,沒有必要填寫cid,因為在公司信息界面cid信息已經(jīng)存在。

         2:公司現(xiàn)實頁面的部門列表中的部門有部分不是屬于此公司的,

以為我們查找部門的時候是查找的全部。

下面解決這兩個問題:

         1:將_new_department.html.erb中的CID的輸入框去掉就好。

         2:這個麻煩一點,需要有幾部完成這個操作:

            第一步:我們給Company賦予名為departments的額外屬性,我們需要在Company模型代碼里定義這個關(guān)系:            

1 class Company < ActiveRecord::Base  2   has_many :departments  3 end

            第二步:將company/show.html.erb中關(guān)于傳遞:department局部變量的方法改為如下方式:

       1 <%= render :partial => "department_list", :locals => { :departments => @company.departments}%>

            查案結(jié)果,發(fā)現(xiàn)錯誤:

                 Ruby on rails初體驗(三)

      原來ror的主外鍵關(guān)系是通過約定表列的名字來將數(shù)據(jù)連接起來的,將department中的cid改為company_id,改完之后要將對應的模板中的對應標記進行修改后查看結(jié)果正確。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI