我正在制作邮件,以便我有一个商家目录,每个商家信息都有一个表单,当表单填写完毕并提交后,会将其发送到带有潜在客户信息的相关商家电子邮件。
这是邮件文件夹文件:
class Enquiry < ActionMailer::Base
default from: "admin@uk-franchise.co.uk"
attr_accessible :name
def lead(listing)
@listing = listing
mail(to: @listing.leadrecepient, subject: "test")
end
end
这是我正在调用它的列表控制器:
def lead
listing = Listing.find(params[:id])
Enquiry.lead(listing).deliver
redirect_to listing
end
观点:
<%= form_for @listing, url: lead_listing_path(@listing), method: :put do |listing| %>
<%= listing.text_field :name %>
<%= listing.submit %>
<% end %>
路线:
resources :listings do
member do
put :lead
end
end
错误:(
undefined method `name' for #<Listing:0x4d7c6d8>
在视线上:
<%= listing.text_field :name %>
任何帮助都非常感谢,邮寄是一场噩梦!
答案 0 :(得分:0)
使用form_for
助手时,它实际上依赖于模型对象。这样做,当您编写listing.text_field :name
时,它实际上会在name
模型中查找字段listing
。你得到那个错误,因为你的模型(连接到数据库表?我们希望看到listing
类)没有这个字段。我可以在Inquiry类中看到它。
我会说你必须在模型中移动它,但很难说没有看到模型或知道你需要那个领域......
向我们展示模型并更好地解释你想做什么,所以我们可以帮助你:)