2011-08-03 6 views
0

私はRailsプロジェクトに取り組んでいます。このプロジェクトでは、どのshoolに応じて異なるユーザータイプの設定が必要です。 フォーム内の属性別にグルーピングする

class Preference < ActiveRecord::Base 

    belongs_to :school 
    belongs_to :privilege 
    belongs_to :user_type 

end 

class Privilege < ActiveRecord::Base 

    has_many :preferences 

end 

だから私の見解で、私は特定の学校のための設定を編集したいと私は、ユーザーの種類によって分離し、オーダーしたい:したがって、私は、これらのモデルを持っています。だから、例えば私の完成ビューは次のようになります。

<form accept-charset="UTF-8" action="/preferences/edit" method="post"> 
     <table> 
      <thead> 
        <td>Pivilege</td> 
        <td>Allowed</td> 
       </thead> 
       <tbody> 
       <h2>Student User type</h2> 
       <tr> 
        <td>Privilege 1<td> 
        <td>checkbox for privilege 1<td> 
       </tr> 
<tr> 
        <td>Privilege 2<td> 
        <td>checkbox for privilege 2<td> 
       </tr> 
       <h2>Employee User type</h2> 
       <tr> 
        <td>Privilege 1<td> 
        <td>checkbox for privilege 1<td> 
       </tr> 
<tr> 
        <td>Privilege 2<td> 
        <td>checkbox for privilege 2<td> 
       </tr>    
      </tbody>  
     </table> 
    </form> 

問題は、私はUSER_TYPESによって(form_for @preferences do |f|)ブロックとグループ内でこの配列(@preferencesを)itarateする方法がわからないです。

誰かが私を助けることができますか?好みはそのユーザタイプに属している場合、私はそれをやってより多くの「Railsの道」があるべきだと主張するがThanxsは事前

+0

これはRailsの方法でネストされた属性を使用します – apneadiving

+0

ネストされた属性は同じモデル(Preferences)であるため、この場合は適用されません。異なるモデルの属性を変更する必要はありません。 – jalagrange

答えて

0

に私は(ネストされた属性を使用して検証することになった、これは誰かに役立ちますホープス:。

<%= form_for @school, :url => {:controller => :preferences, :action => :update, :id => @school.id} do |f| %> 
     <h2>Change Preferences</h2>  
    <% UserType.all.each do |ut|%> 
     <h3><%= ut.name%></h3> 
      <table> 

       <thead> 
        <td>Privilege</td> 
        <td>Allowed</td> 
       </thead> 

       <tbody> 

       <%= f.fields_for :preferences do |pref| %> 
        <% if pref.object.user_type == ut%> 
        <tr> 
         <td><%= pref.object.privilege.name%></td> 
         <td><%= pref.check_box :allowed, {:allowed => pref.object.allowed} %></td> 
        </tr> 
        <% end %> 
       <% end%> 
       </tbody>  

      </table>  
    <% end %> 
関連する問題