保存联系表中的数据 (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 配合使用。
我使用本教程创建了一个联系表。 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 配合使用。