0

我目前正在为波士顿地区的国际学生构建一个类似 Reddit 风格社区的 Rails 平台。我仍在测试我的想法是否被接受。我正在使用简单的形式和载波。我在我的注册方法中得到了这个@student = Student.new实例。我@uploader = Student.new.picture在我的注册方法中也得到了这个(使用carrierwave)。这个想法是每个学生都有一张与他或她相关的照片。我的学生模型上安装了载波图像功能。我正在使用carrierwave_direct gem 将图片直接上传到我在亚马逊上的s3 存储。

我的 signup.html.erb 看起来像这样

<div class = "signupform">

    <%= simple_form_for @student, :html => {:multipart => true}  do |f| %>
    <%= f.input :last_name, label: '姓'%>
    <%= f.input :first_name, label: '名' %>
    <%= f.input :email, label: '电子邮件' %>
    <%= f.input :password, label: '密码' %>
    <%= f.input :college, label: '大学' %>
    <%= f.input :budget, label: '房间租金预算 (optional)' %> 
    <%= f.button :submit %>
    <br>

    Your picture is optional
    <% end %>

    <%= direct_upload_form_for @uploader do |f| %>
      <p><%= f.file_field :picture %></p>
    <%= f.button :submit %>

  <% end %>

</div>

我如何把它变成一种形式?我的表单上有两个提交按钮,用户可以在其中创建帐户但被重定向到感谢页面,或者用户可以只上传图片而不创建帐户?

direct_upload_form_for 直接是来自运营商直接的帮助视图方法,我想需要直接上传到 s3 吗?

4

1 回答 1

0

为什么你使用两种形式而不是一种形式?在学生模型中包含图像上传。

<%= simple_form_for @student, :html => {:multipart => true}  do |f| %>
    <%= f.input :last_name, label: '姓'%>
    <%= f.input :first_name, label: '名' %>
    <%= f.input :email, label: '电子邮件' %>
    <%= f.input :password, label: '密码' %>
    <%= f.input :college, label: '大学' %>
    <%= f.input :budget, label: '房间租金预算 (optional)' %> 

    <%= f.file_field :picture, label: 'student photo (optional)' %>   

    <%= f.button :submit %>
    <br>

可以调用辅助方法 simple_form 吗?如果你需要以这种方式形成它怎么办

<%= simple_form_for @student, :html => {:multipart => true}  do |f| %>
    <%= f.input :last_name, label: '姓'%>
    <%= f.input :first_name, label: '名' %>
    <%= f.input :email, label: '电子邮件' %>
    <%= f.input :password, label: '密码' %>
    <%= f.input :college, label: '大学' %>
    <%= f.input :budget, label: '房间租金预算 (optional)' %> 

    <%= direct_upload_form_for @uploader do |f| %>
     <p><%= f.file_field :picture %></p>

    <%= f.button :submit %>
    <br>
于 2013-09-03T17:22:15.463 回答