Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 验证来自不同模型的值_Ruby On Rails_Ruby_Validation_Ruby On Rails 3.2_Ruby 1.8.7 - Fatal编程技术网

Ruby on 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 =>

我是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 => 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不能为空)。如果在添加用户后修改代理,则需要使用