2016-07-24 89 views
-1

我是新進入Ruby on Rails的,我想爲變量賦值,使每一個這樣的Ruby on Rails的創建一個新的變量作出每個

<% 3.times do |calendar| %> 
<% test = @lessons_calendar %> 
    <% test.each do |lesson| %> 
    display html here 
    <% end %> 
<% end %> 

的事情是,在我的控制器我已經分配了3個變量,如@ lessons_1 @ lessons_2和@ lessons_3,但是當我運行代碼時,它說nil:NilClass中的每個方法都是未定義的,我怎樣才能將日曆創建的數字加入新變量?由於

+1

你不需要三個實例變量,你只需要一個名爲'@ lessons'的三元素數組。 –

+0

不,我需要3個實例,稱爲他們每個人的lesson_1和2和3,是爲一個日曆,每個實例是一天 – mdiaz00147

+0

@ mdiaz00147正如mu說的,_你不想要3個變量_。您通常編碼的方式是使用Hash或Array類型的單個變量。 –

回答

-1
<% 3.times do |calender| %> 
    <%= @lessons_calendar.collect{ |lesson| Write Your Code Here }.join("").html_safe rescue 'No Record' %> 
<% end %> 

隨着在收集迭代器,你可以,如果你想將其分配到的實例變種。由於

+0

在視圖中使用內聯救援確實是一種可怕的方法。另外,'@ display html'在做什麼? –

+0

@顯示HTML是相當自我解釋。用戶可以在這裏添加html或代碼。 –

+0

不,不是。這似乎是一個變量和/或方法調用。 –

0

而不是下面

<% 3.times do |calendar| %> 
<% test = @lessons_calendar %> 
<% test.each do |lesson| %> 
    display html here 
<% end %> 
<% end %> 

請在您的控制器的變化以及考慮到如下

控制器代碼

# take new variable 
@lessons = [] 
@lessons << @lessons_1 
@lessons << @lessons_2 
@lessons << @lessons_3 

現在做代碼視圖文件,如下

<% @lessons.each do |lesson| %> 
    <% lesson.each do |ls| %> 
    your code here 
    <%end%> 
<%end%> 

希望這會對你有所幫助。