2015-11-21 27 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 %> –