从Rails 4中的其他控制器/视图将数据保存在表中

马特·C

我想拥有一个用户可以在其中创建邻域的视图。但是,我希望这些邻域在保存到邻域表之前先得到管理员的批准。

我想要一个temp_neighborhood表,在该表中将保存记录,直到管理员批准它们为止,然后将数据移至近邻表。该临时表将具有与常规表相同的属性。

所以这是我可视化的流程:

  • 用户访问社区/索引页面
  • 用户单击一个按钮来创建他们的邻居
  • 他们填写信息,然后邻居控制器获取该数据,并将其保存在temp_neighborhood表中。
  • 稍后,管理员将访问页面以批准/拒绝用户创建的社区。
  • 一经批准,临时邻居将被移至永久邻居表。

邻居控制器:

class NeighborhoodsController < ApplicationController
  before_action :set_neighborhood, only: [:show, :edit, :update, :destroy]

  #index, show, edit, update, and delete methods removed for brevity

  def new
    @neighborhood = Neighborhood.new
  end

  def create
    @neighborhood = Neighborhood.new(neighborhood_params)

    respond_to do |format|
      if @neighborhood.save
        format.html { redirect_to @neighborhood, notice: 'Neighborhood was successfully created.' }
        format.json { render :show, status: :created, location: @neighborhood }
      else
        format.html { render :new }
        format.json { render json: @neighborhood.errors, status: :unprocessable_entity }
      end
    end
  end

 private
    def set_neighborhood
      @neighborhood = Neighborhood.find_by_slug(params[:id])
    end

    def neighborhood_params
      params.require(:neighborhood).permit(:name, :address)
    end
end

邻居模型:

class Neighborhood < ActiveRecord::Base
  geocoded_by :address
  after_validation :geocode

  has_many :users

  validates :name, presence: true, uniqueness: true
  validates :address, presence: true
  after_validation :create_slug

  def to_param
    slug
  end

  private
    def create_slug
      self.slug = name.parameterize
    end
end

上面的代码只是将用户创建的邻域保存在永久表中。为了将数据保存在临时表中,我制作了该表和一个名为TempNeighborhood的控制器。TempNeighborhood控制器只有一个新的create方法,看起来就像邻居控制器一样。

回到邻域控制器中,在create方法中,我更改了以下行:

@neighborhood = Neighborhood.new(neighborhood_params)

对此:

@neighborhood = TempNeighborhood.new(neighborhood_params)

但是,这给了我以下错误:

uninitialized constant NeighborhoodsController::TempNeighborhood

将数据从一个控制器保存到另一个表的最佳方法是什么?

玛丽亚(Mariah)

您确定已将TempNeighborhood Controller设置为复数形式吗?TempNeighborhood控制器和模型是单数形式的“ TempNeighborhood”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从一个控制器/视图将数据插入到多个表中[Rails 4]

Rails-在控制器中,如何从其他控制器渲染动作?

使用Rails中的表单将数据从视图传递到控制器

从视图安全地将数据传递到Rails中的控制器

将值从视图传递到Rails 4中的控制器

在其他控制器和视图中创建用户(Rails 4 with Devise)

从Rails 4中的控制器注销

Rails:将数据保存在两个表中

在其他模型的控制器内的Rails中创建模型

Ruby on Rails:从其他控制器中查找模型实例

如何从控制器中创建的视图访问rails中的数据?

Rails-将值从视图表单中获取到控制器中

通过 AJAX 和控制器在 Rails 中渲染视图

在Rails视图和控制器中迭代记录

检查Rails中的控制器是否存在记录

控制器中的Rails视图逻辑产生哈希/数组而不是打印数据

如何将表单字段值传递给 Rails 中的不同控制器视图?

Rails:如何检查用户是否存在于控制器中,以及是否不重定向到其他站点

保存用户之前,在设计注册控制器中的Rails 4更新字段

ID不会在Rails 4中跨模型/控制器保存到DB

如何从 Rails 关联中的控制器访问数据

控制器中的Rails 4功能未运行

在Rails 4中翻译控制器action_name

如何找到在Rails 4中定义的控制器方法?

Rails 4在单独的控制器中搜索多个模型

如何在Rails 4中测试控制器问题

在Rails 4中,如何从控制器内的设计用户那里获取数据?

RAILS:如何将JSON API数据传递到控制器中的哈希

将数据从单选按钮发送到控制器以验证Rails中的嵌套属性值