RAILS:为输入字段分配从下拉选择器中选择的信息

时间:2019-04-29 16:34:40

标签: ruby-on-rails

我对以下内容感到困惑,如果有人可以建议我,我将不胜感激

我的架构中包含以下表格

学校

t.string "name"
t.string "address"
t.string “town”
t.integer "category_town_id"

category_towns

t.string "name"

模型

school belongs_to :category_town
category_town has_many :schools

学校负责人

def create
    @user = current_user
    @school = @user.schools.create(school_params)
    @school.town = @school.category_town.name

    respond_to do |format|
      if @school.save
    redirect_to @school
      else
        format.html { render :new }
        format.json { render json: @school.errors, status: :unprocessable_entity }
      end
    end
  end

我想做的是:

  • 创建学校并选择category_town_id = 2后,将town分配给与category_town_id = 2相同的信息
  • 例如,如果@school.category_town.nameLondon,请确保@school.town也是London
  • 我尝试在控制器@school.town = @school.category_town.name的create动作中执行此操作,但这似乎不起作用

您的建议将不胜感激

1 个答案:

答案 0 :(得分:0)

@school = @user.schools.create(school_params)
@school.update_attributes(town: @school.category_town.name)

OR

@school = @user.schools.new(school_params)
@school.town = @school.category_town.name
@school.save

第一个将创建记录,然后更新学校对象上的属性。第二个将初始化学校的新实例,调整镇属性。但是然后您需要在对象上调用save来保存更改