这个问题很难提出,但基本上,我有一个Class模型和一个User模型,每个Class表都有一个令牌,每个用户都有一个令牌。用户提交注册表单后,如何在创建操作中设置用户class_id的值?我试过<%= f.hidden_field :app_id, :value => App.find_by_token(params[:key]) %>
,但这不起作用。对不起那个漫长而令人困惑的问题,很乐意回答更多。提前感谢您的任何答案
答案 0 :(得分:0)
听起来好像你有一个“关系”,其中一个用户属于一个类,一个类可能有很多用户。如果是这种情况,那么您应该使用rails Associations来让自己轻松。这将涉及向您的Class模型添加'has_many:users',并为您的User模型添加'belongs_to:class'调用。然后,您只需使用rails帮助程序“构建”对象,并将其与关联控制器中的关联一起保存。
从您的控制器手动执行此操作的方法如下:
def create
#This would involve you sending the proper class id as a hidden form field with the form field attribute named 'class_id'. You may need to add 'attr_accessor :class_id' to your User model.
if user.create(user_params)
blahblahblah
else
sorry blah blah
end
end
private
def user_params
params.require(:user).permit(:name, :email, :class_id, :etc)
end