是否可以将数据插入一个控制器内的两个不同表中

班加·瓦尔

我有这张桌子的名字是

用户表

图片表

其主要工作是存储图片路径,名称和用户ID(这样做是因为我希望允许我的应用程序用户上传的图片多于图片,如果我在users表中为图片创建一列,不允许我这样做)。

现在在表单(注册表单)中,如果用户决定上传图片,我希望将图片保存在图片表中,而仍在

Users_controller创建方法

到目前为止,这是我所做的(new.html.erb)

<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>
<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <%= form_for(@user, url: signup_path) do |f| %>
          <%= render'shared/error_messages', object: f.object %>
          <%= f.label :name %>
          <%= f.text_field :name, class: 'form-control' %>

          <%= f.label :email %>
          <%= f.email_field :email, class: 'form-control' %>

          <%= f.label :username %>
          <%= f.text_field :username, class: 'form-control' %>

          <%= f.label :password %>
          <%= f.password_field :password, class: 'form-control' %>

          <%= f.label :password_confirmation, "Confirmation" %>
          <%= f.password_field :password_confirmation, class: 'form-control' %>

          <span class="picture">
            <%= f.file_field :picture, accept: 'image/jpeg,image/gif,image/png' %>
          </span>
          <%= f.submit "Create an account", class: "btn btn-primary" %>
        <% end %>
    </div>
</div>

在用户控制器内部,我在create方法中有这个

1. def create
2.  @user = User.new(user_params) # Not the final implementation!
3.
4.  if @user.save
5.      # Save to the picture name to the picture table
6.               if params[:picture].present?
7.                 # How do I save the picture to the picture table from users controller
8.            @user.send_activation_email
9.        flash[:info] = "Please check your email to activate your account."
10.       redirect_to root_url
11. else
12.     #@states = State.all
13.         render 'new'
14. end
15.  end

如果您看第6和7行,我有这些

if params[:picture].present?
  # How do I save the picture to the picture table from users controller

那就是现在的问题所在,如何将图片名称插入到user_controller内部的数据库中

太阳技术
# new action
def new 
  @user = User.new
  @user.pictures.build
end

# create action
def create
  @user = User.new(user_params)
  @user.save
end

private
def user_params
  params.require(:user).permit(:name, pictures_attributes: [:id]) 
# in addition to the id you need to specify the other required fields.
end
# User model
class User
  has_many :pictures
  accepts_nested_attributes_for :pictures, allow_destroy: true
end
# form view

<%= form_for @user do |f| %>
  pictures:
    <%= f.fields_for :pictures do |picture_form| %>
    # your code

希望这可以帮助您了解

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用一个控制器和一个视图在两个表中插入数据

在一个控制器中为两个不同的表创建记录是否被认为是不好的做法?

仅使用一个控制器将两个图像保存在不同的文件夹中

将CSV文件导入Laravel控制器并将数据插入到两个表中

oracle 将两个不同表中的记录插入到一个表中

将一个数据库表中的行插入另一个数据库中的两个不同表中

一个视图控制器中的两个表视图,一个表视图未显示

将两个表中的数据插入到另一个表中

Rails 在尝试从一个控制器插入两个表时一直显示“UnkownAttributeError”

将两个不同表中的记录插入一个

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

是否可以在 Java Spring 中使用带有一个 URI 的两个控制器类?

在一个视图控制器中将数据源分配给两个表视图

如何在angular.js的一个控制器中存储来自两个不同网页的数据

是否可以将相同的视图添加到两个不同的视图控制器?

我可以使用一个控制器来更新AngularJS中的两个视图吗?

如何使用Storyboard将两个视图控制器连接到一个视图控制器?

使用Laravel查询构建器将记录插入到两个表或一个表中,具体取决于记录是否存在

如何将两个视图控制器连接到情节提要中的一个按钮?

CAKEPHP:使用两个模型使用一个视图和一个控制器在一个表中显示数据错误:未定义的变量:total_hours

从两个不同的表插入到一个表中

一个按钮可以有两个转场到两个不同的视图控制器/如何在没有转场的情况下编写视图控制器更改?

我可以在 rails 的单个页面中呈现两个不同的控制器操作吗

如何使两个控制器共享一个控制器动作?

一个模块中的两个控制器不起作用

在两个控制器中调用一个函数 - AngularJS 1.x

Smarty:一个控制器中包含两个模板

如果一个控制器的sizeForItemAtIndexPath中的两个collectionview不起作用

如何在一个Web API控制器中获取两个模型?