2017-07-29 42 views
-2

我需要這個Django的轉換的if else流Ruby on Rails的:轉換如果從Django中其他流動Ruby on Rails的

這是Django的代碼:

<select name="level" id="level"> 

    {% if level == 'gold' %} 
    <option value="gold" selected>Gold</option> 
    {% else %} 
    <option value="gold" >Gold</option> 
    {% endif %} 

    {% if level == 'silver'%} 
    <option value="silver" selected="">Silver</option> 
    {% else %} 
    <option value="silver" >Silver</option> 
    {% endif %} 

    % if level == 'bronze' %} 
    <option value="bronze" selected="">Bronze</option> 
    {% else %} 
    <option value="bronze" >Bronze</option> 
    {% endif %} 

</select> 

這是RoR的版本我做:

<select name="level" id="level"> 

    <% if @package_signup.level == 'gold' %> 
    <option value="gold" selected>Gold</option> 
    <% else %> 
    <option value="gold" >Gold</option> 
    <% end %> 

    <% if @package_signup.level == 'silver' %> 
    <option value="silver" selected="">Silver</option> 
    <% else %> 
    <option value="silver" >Silver</option> 
    <% end %> 

    <% if @package_signup.level == 'bronze' %> 
    <option value="bronze" selected="">Bronze</option> 
    <% else %> 
    <option value="bronze" >Bronze</option> 
    <% end %> 

</select> 

這是控制器(我想訪問級別的變量):

class Welcome2Controller < ApplicationController 
    def pricing 
    @package_signup = params[:level] 
    end 
end 

這是我收到錯誤:爲‘青銅’

未定義的方法`水平」:字符串

回答

1

錯誤是因爲@package_signup是一個字符串值,其等於params[:level]。錯誤消息,undefined method 'level' for "bronze":String表明其值爲bronze

您正在考慮將其作爲模型對象。您可以使用@package_signup == 'gold'而不是@package_signup.level== 'gold'

所以,你在視圖代碼應該是這樣的:

<% if @package_signup == 'gold' %>