2014-10-08 99 views
0

我想以表格形式打印用戶給出的條目。該表將包含3列名稱,註冊號碼和班級出席,但輸出不符合預期。它首先打印所有的名字,然後是所有的註冊號碼等等。我想根據出席的姓名和班級列印姓名和註冊號碼。Ruby on rails-從用戶處獲得輸入的表格形式

</head><table width="100%"> 
<tr> 
<th>NAME</th> 
<th>REGISTRATION NUMBER</th> 
<th>CLASSES ATTENDED</th> 
</tr> 
<tr> 
<% @name_students.each do |t| %> 
<th><%= t.name_student %></th><br> 
<% end %> 
<% @reg_nos.each do |t| %> 
<th><%= t.reg_no %></th><br> 
<% end %> 
<% @classes_ats.each do |t| %> 
<th><%= t.classes_at %></th><br> 
<% end %> 
</tr> 
</table> 

這是我的控制器操作。

class PagesController < ApplicationController 
def home 
@name_students = Page.all 
@reg_nos = Page.all 
@classes_ats = Page.all 
end 
def list 
@name_students = Page.all 
@reg_nos = Page.all 
@classes_ats = Page.all 
end 
def add 
Page.create(:name_student => params[:nam]) 
Page.create(:reg_no => params[:reg]) 
Page.create(:classes_at => params[:cls]) 
redirect_to :action => 'home' 
end 
end 

回答

0

如果我理解你在做什麼,你應該有PagesController#home返回類似@pages = Page.all對象和顯示一種像這樣的數據:

<thead> 
    <tr> 
    <th>Name</th> 
    <th>Registration Number</th> 
    <th>Classes Attended</th> 
    </tr> 
</thead> 

<tbody> 
    <% @pages.each do |p| %> 
    <tr> 
     <td><%= p.name %></td> 
     <td><%= p.registration_number %></td> 
     <td><%= classes_attended(p.classes_attended) %></td> 
    </tr> 
    <% end %> 
</tbody> 

以上,classes_attended(p)是一個通話幫助程序方法,您可以使用該方法將學生所關注的類的類名稱映射到可顯示數組中。實際上,這種顯示邏輯在裝飾器中可能會更好,但是輔助方法現在應該沒問題。

讓我知道,如果我完全誤解了你在做什麼,我會刪除我的答案。

編輯補充:

例指數法:

def home 
    @pages = Page.all 
end 

而且,你的問題再次尋找,有沒有你正在創建具有三種Page對象的屬性,而不是每一個Page原因有三個屬性的對象?它應該看起來像Page.create(:name_student => params[:nam], :reg_no => params[:reg], :classes_at => params[:cls])。這幾乎是我發佈的解決方案的唯一途徑。不過,我可能完全誤解你要做什麼。

+0

這真的很有幫助,但是您可以添加您的控制器內容嗎? – shreyash 2014-10-08 03:45:22

+0

@shreyash添加了一些東西。 – elements 2014-10-08 04:04:28