2015-07-20 62 views
0

我在html.erb文件裏面有以下函數,它返回syntax error, unexpected end-of-input, expecting keyword_end錯誤。html內的導軌函數

<% def my_func(obj) 
    if obj === 'one' 
     return 'one_class' 
    elsif obj === 'two' 
     return 'two_class' 
end %> 

<div class="<%= my_func('one') %>"></div> 

我該如何做這項工作?

+1

您需要將您的功能'helpers'。這就是他們應該居住的地方。 – RAJ

+1

您在查看文件中有方法0_o – Pavan

+0

您不應該在視圖中定義函數。這與MVC的整個想法背道而馳。 – BroiSatse

回答

1

我注意到在你的代碼中需要多一個end

<% 
    def my_func(obj) 
    if obj === 'one' 
     return 'one_class' 
    elsif obj === 'two' 
     return 'two_class' 
    end 
    end 
%> 

<div class="<%= my_func('one') %>"></div> 

但是,請在輔助文件中寫這種方法。它使你的代碼更清晰,易於維護。請參閱Rails helpers概念。

0

您的函數/方法最後期待end,但是,我強烈建議避免在視圖中定義方法。你應該將你的方法移入幫助器並在視圖中調用它。

您的看法:

<div class="<%= my_func('one') %>"></div> 

你相應的幫手:

def my_func(obj) 
    if obj === 'one' 
    'one_class' 
    elsif obj === 'two' 
    'two_class' 
    end 
end