保存联系表中的数据 (rails)

Save data from contact form (rails)

我使用本教程创建了一个联系表。 https://rubyonrailshelp.wordpress.com/2014/01/08/rails-4-simple-form-and-mail-form-to-make-contact-form/

它与邮件程序完美配合。然而,本教程使您的模型(在我的例子中是 'Share' 模型)像这样继承:

class Share < MailForm::Base

而不是正常的ActiveRecord::Base

我猜是因为这个原因,当我尝试用

保存数据时
@article_save = Share.create(share_params)

我正在为 class 获取 'undefined create' 方法。我的模型看起来像这样:

class Share < MailForm::Base

attribute :email,     :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
attribute :user_email,     :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
attribute :title
attribute :message
attribute :source
attribute :url

#Declare the e-mail headers. It accepts anything the mail method
#in ActionMailer accepts.
def headers
{
  :subject => "Article shared via email",
  :to => "my@email.com",
  :from => %(<#{email}>)
}
end

结束

我的控制器是这样的:

class SharesController < ApplicationController

def new
    @article = Share.new
end

def create
    @article = Share.new(params[:share])
    @article.request = request
    UserMailGenerator.new(nil).share_article(@article).deliver
    if @article.save
        redirect_to(:back)
    else
        render :new
    end
end


private

def share_params
  params.require(:share).permit(:email, :user_email, :url)
end

end

我保留此配置并保存数据的最佳方式是什么?我已经完成迁移以将 shared_params 中的列添加到数据库中。

谢谢

mail-form 没有提供"create"方法 如果可能,请根据给定更改模型!

class User < ActiveRecord::Base
  include MailForm::Delivery

end

mail-form 也可以很好地与 activerecord 配合使用。

Reference