2015-11-21 64 views
0

我目前使用兩種模式,teachersusersRails:autopopulate表格字段

我允許小組老師註冊(使用設計)他們自己的用戶,他們將通過teacher_id與這些教師關聯。例如,教師Id爲1的小組成員將全部參與領導者1的隊列。

更新:我原來的問題是如何添加隱藏字段。我已經添加了一個隱藏字段,但由於某些奇怪的原因數據正在保存到Db。新用戶有一個空白的教師ID。任何幫助,將不勝感激。

註冊記憶控制器

class RegistrationsController < Devise::RegistrationsController 

    private 

    def sign_up_params 
    params.require(:user).permit(:teacher, :teacher_id, :user_id, :username, :first_name, :last_name, :email, :password, :password_confirmation) 
    end 

    def account_update_params 
    params.require(:user).permit(:teacher, :teacher_id, :user_id, :username, :first_name, :last_name, :email, :password, :password_confirmation, :current_password) 
    end 
end 
    enter code here 

New.html.erb

<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
<div> 
<% if teacher_signed_in? %> 
<p> 
    Sign up new student. Enter in the name, email and password that your student will use to sign in. 

<%= hidden_field_tag :teacher_id, current_teacher.id %> 
<% else %> 
<% end %> 

    <%= f.input :username, required: true, autofocus: true %> 
    <%= f.input :email, required: true %> 




    <%= f.input :password, required: true, hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) %> 
    <%= f.input :password_confirmation, required: false %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit, "Sign up" %> 
    </div> 
<% end %> 

<%= render "devise/shared/links" %> 

    enter code here 

回答

2

如果你真的想把ID放在@ bryan-dimas的答案中。

儘管我會建議您在創建記錄之前將其設置在控制器中,而不是將其設置在表單中,這樣可以確保用戶與創建記錄的Leader相關聯。 如果您在表單中填寫了該表單,則具有足夠知識的用戶可以在提交表單之前查看隱藏字段並更改該值。

這將是這樣的:

params.require(:user).permit(<some fields>).merge(leader_id: current_user.id)

+0

這個工作據我所知。我剛剛編輯了註冊控制器,添加了.merge(teacher_id:current_teacher.id) –

2

您可以設置隱藏字段的值作爲current_leaders的ID。它將與表格的其餘部分一起發佈。

<%= hidden_field_tag :leader_id, current_leader.id %> 
+0

感謝您的建議。出於某種原因,新生的領導者身份不會被保存(或者看起來是空白的)。我確實已在registrations_controller的def sign_up_params中創建了它。任何想法,爲什麼這可能是? –

+0

YW :)。這可能是因爲你的模型關係。您可以向我們展示由表單或您的模型'teacher.rb'和'student.rb'發佈的參數http://guides.rubyonrails.org/association_basics.html –

+0

這也適用於:<%如果teacher_signed_in? %> <%= f.hidden_​​field:teacher_id,:value => current_teacher.id%> <% end %> –