Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3、Action Mailer、附件、表单、电子邮件_Ruby On Rails_Ruby On Rails 3_Actionmailer_Email Attachments - Fatal编程技术网

Ruby on rails Rails 3、Action Mailer、附件、表单、电子邮件

Ruby on rails Rails 3、Action Mailer、附件、表单、电子邮件,ruby-on-rails,ruby-on-rails-3,actionmailer,email-attachments,Ruby On Rails,Ruby On Rails 3,Actionmailer,Email Attachments,如何使用表单_将文件附加到邮件?到目前为止,它给了我一个错误: ActiveRecord::语句在UsersController#create中无效 NoMethodError:nil的未定义方法“name”:NilClass:插入“users”(“created_-at”、“email”、“file_-field”、“name”、“text_-field”、“updated_-at”)值(?,,,,,,?) 这就是我想到的 class UserMailer < ActionMailer:

如何使用表单_将文件附加到邮件?到目前为止,它给了我一个错误:

ActiveRecord::语句在UsersController#create中无效

NoMethodError:nil的未定义方法“name”:NilClass:插入“users”(“created_-at”、“email”、“file_-field”、“name”、“text_-field”、“updated_-at”)值(?,,,,,,?)

这就是我想到的

class UserMailer < ActionMailer::Base
  default :from => "example@gmail.com"

    def registration_confirmation(user)
      @user = user
         unless user[:file_field].nil?
           file=user[:file_field]
           attachments[file.original_filename] = File.open(file.path, 'rb'){|f| f.read}
         end
    mail(:to => user.email, :subject => "Registered")
  end
end

这是有关stackoverflow的热门话题,请务必查看其他线程。他们真的很深入,应该能解决你的问题

例如:

如果结果不是这样,请回来,我们一定会启动另一个邮件附件线程

  <%= form_for @user, :html => {:multipart => true} do |f| %>
<div class="field">
  <%= f.label :file_field %><br />
  <%= f.file_field :file_field %>
</div>
 <div class="field">
   <%= f.label :name %><br />
   <%= f.text_field :name %>
</div>
<div class="field">
   <%= f.label :email %><br />
   <%= f.text_field :email %>
</div>
<div class="actions">
   <%= f.submit %>
</div>
<% end %>
def create
@user = User.new(params[:user])

  if @user.save
UserMailer.registration_confirmation(@user).deliver
    redirect_to @user
  else
   render action: "new" 
  end
end