Ruby on rails 验证来自不同模型的值
我是Rails新手,所以我有一个新手问题 我们有一个表单,允许管理员设置如下所示的新用户:Ruby on rails 验证来自不同模型的值,ruby-on-rails,ruby,validation,ruby-on-rails-3.2,ruby-1.8.7,Ruby On Rails,Ruby,Validation,Ruby On Rails 3.2,Ruby 1.8.7,我是Rails新手,所以我有一个新手问题 我们有一个表单,允许管理员设置如下所示的新用户: <%= form_for :user, :url => url_for(:action => 'create_user', :account_id => @account.id, :hide_form => 1), :html => {:name => 'new_user_form', :id => 'new_user_form', :remote =>
<%= form_for :user, :url => url_for(:action => 'create_user', :account_id => @account.id, :hide_form => 1), :html => {:name => 'new_user_form', :id => 'new_user_form', :remote => true} do |f| %>
First Name:
<% f.text_field 'first_name' %><br/>
Last Name:
<%= f.text_field 'last_name' %><br/>
Username:
<%= f.text_field 'login' %><br/>
Email:
<%= f.text_field 'email' %><br/>
Agency Code:
<%= text_field_tag 'agency_code', @default_agency_code %><br/>
<div class="button-bar">
<%= f.submit :id => "submit_button" %>
</div>
<% end %>
我的理解是,视图中开始的行可以简单地使用
@user.agency = Agency.find_by_id{|agency| agency.product_code == params[:agency_code]}
在您的用户模型中
validates :agency_id, :presence => true
在这种情况下,find\u by\u id
比简单的find
更有效,因为如果找不到模型,它将返回nil
。您可以简单地使用
@user.agency = Agency.find_by_id{|agency| agency.product_code == params[:agency_code]}
在您的用户模型中
validates :agency_id, :presence => true
在这种情况下,find\u by\u id
比简单的find
更有效,因为如果找不到模型,它将返回nil
。感谢您快速响应!有一种想法仍然让我有点困惑:对用户
模型的更改如何让Rails知道如何在代理
模型中查找验证?如果我做得好,查看您的代码,似乎您正在选择一个现有的代理,而不是在创建用户时更新一个。在这种情况下,如果找到代理,代理将始终有效,因此事实上,您希望验证一个用户属性-他应该有一个代理。代理模型上没有验证,它在用户上-它需要有一个代理(因此,代理id不能为空)。如果您在添加用户后修改代理,您需要使用InsteadThank,感谢您快速响应!有一种想法仍然让我有点困惑:对用户
模型的更改如何让Rails知道如何在代理
模型中查找验证?如果我做得好,查看您的代码,似乎您正在选择一个现有的代理,而不是在创建用户时更新一个。在这种情况下,如果找到代理,代理将始终有效,因此事实上,您希望验证一个用户属性-他应该有一个代理。代理模型上没有验证,它在用户上-它需要有一个代理(因此,代理id不能为空)。如果在添加用户后修改代理,则需要使用