Если-еще заявление для параметров? - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть пользовательская таблица и организационная таблица. Когда вы регистрируетесь для пользователя, приложение также создает новую организацию для вас. Я сделал это, поместив этот код в user.rb:

class User < ActiveRecord::Base
  before_create :create_organization
  belongs_to :organization

  private
  def create_organization
    self.organization = Organization.create :name => self.name
  end
end

Но в некоторых случаях параметры передаются через URL, например,

http://localhost:3000/sign_up?organization_id=10

Как создать какой-то оператор if-then, чтобы при наличии параметра organization_id пользовательская модель НЕ создавала новую организацию ... Вместо этого она отправляет существующий параметр organization_id в качестве значения_организации для пользователь?

Ответы [ 2 ]

4 голосов
/ 19 декабря 2011

Просто добавьте проверку в вашу модель,

  def create_organization
    organization = Organization.create :name => name unless organization_id.present?
  end

А в вашем контроллере просто установите organization_id из params.

0 голосов
/ 19 декабря 2011
self.organization = Organization.find(organization_id) rescue Organization.create :name => name

как find повысит ActiveRecord::RecordNotFound, даже если params[:organization_id] не установлено.

...