我有一个名为Contact_Email的模型。当电子邮件模板通过ActionMailer发送到特定联系人时,作为“创建”操作的一部分,它会通过.save发送它。
但是,我想创建一个“跳过”操作,它也会创建一个Contact_Email,但不会发送一个ActionMailer并允许我以不同的方式设置状态。
我想创建一个单独的操作,因为我想让它响应一个remote_for_tag,这样我就可以有一个ajax按钮表示它已被“跳过”:
这是我尝试的内容,但是当它创建一个Contact_Email时,当我想返回并再次查看所有联系人时,我最终收到错误。
def skip
@contact_email = ContactEmail.new
@contact_email.contact_id = params[:contact_id]
@contact_email.email_id = params[:email_id]
@contact_email.status = "skipped"
if @contact_email.save
flash[:notice] = "skipped email"
redirect_to contact_emails_url
end
end
答案 0 :(得分:0)
嗯,您的代码似乎没问题,只是一些事情。
你没有其他声明,如果你的话 @contact_email未保存?
你绝对不应该单独指定所有参数。在视图中使用contact_email和
控制器中@contact_email = ContactEmail.new(params[:contact_email])
。虽然单独分配“跳过”是可以的
map.resources :contact_emails, :member => {:skip => :post}
一切都应该没问题