2011-09-02 79 views
0

我有一个模型,有一些附加的文件。 在show action中,我有一个链接来打开一个显示窗体的对话框。从模型导轨邮件程序+ sendmail

此表格用于发送带有来自父模型的附加文件的电子邮件,以及有关该模型的一些信息。

我创建了一个发电机:

rails g mailer notifier 
rails g resource emailsystem 

现在,我已经在节目

<div id="dialog" style="display:none"> 
    <%= form_for ???? do |f| %> 
     <%= f.text_field :fromemail %> 
    <% end %> 
</div> 

一个div但我不与我需要附上这种形式是什么型号知道,因为该表单不需要数据库。 我创建了一个新资源,但是当我使用它时,由于资源表不存在而出现错误。

我该怎么做?我想我需要将对话框的形式与当前模型相关联。

编辑------------

我现在已经创建了我的形式和控制器和邮件+车型

mailer + models 

mailer 
def plan_notification(resource) 
    @plans = resource 
    mail(:to => "maskedemail", 
     :from => 'maskedemail', 
     :subject => 'test') 
end 

model 
def save 
    Emailplan.plan_notification(self).deliver! 
end 

and my controller 

def send 

    puts 'test' 
    @emailplan = Emailplan.save(params[:emailplan]) 
end 


my routes.rb 

match 'emailplans/send' => 'emailplans#send', :as => :send_emailplan 

my form 

<%= form_for @emailplan, :as => :emailplans, :url => send_emailplan_path do |e| %> 
    <div>To : <%= e.text_field 'toemail' %></div> 
    <div>From : <%= e.text_field 'fromemail' %></div> 
    <div>Note : </div> 
    <div><%= e.text_area 'note', :rows => 5 %></div> 
    <div><%= e.submit 'Send plans' %></div> 
<% end %> 

但所有这一切,我得到这个错误:

Parameters: {"commit"=>"Send plans", "authenticity_token"=>"12dR2T8IOSoKktQEHxthP8v5bxTuPBzwnoWz9lTgim0=", "utf8"=>"✓", "emailplans"=>{"fromemail"=>"maskedemail", "toemail"=>"maskedemail", "note"=>"23423423"}} 
Completed 500 Internal Server Error in 0ms 

ArgumentError (wrong number of arguments (2 for 0)): 

为什么我的参数数量错了?我可以在哪里设置我的模型/控制器的参数数量?

谢谢。

回答

0

简短的答案是使用form_tag而不是form_for。所以:

<%= form_tag '/url/to/controller/that/sends/mail/goes/here' do |f| %> 
    <%= f.text_field 'fromemail' %> 
    <%= f.submit 'Send email' %> 
<%= end %> 

较长的答案是,你可能希望在阅读的ActionMailer一个或两个教程 - 我怀疑你可能是一个有点困惑的邮件中轨是如何工作的;-)

文档(?)在这里:http://api.rubyonrails.org/classes/ActionMailer/Base.html

,或者如果你愿意,在RailsCast:http://railscasts.com/episodes/206-action-mailer-in-rails-3

+0

是的,我有点迷惑使用的ActionMailer呵呵感谢您的链接,我已经检查了railscasts视频。谢谢。 – neimad

+0

unclaimedbaggage,你使用text_field的方式看起来不工作,我得到这个错误信息:'未定义的方法'text_field为零:NilClass'如果我改变一些关于控制器的设置并使用text_field:tableelement工作,但与您的f.text_field'fromemail'我得到这个错误。谢谢你的帮助 – neimad