我有下面的表单,它的工作绝对正常但是在提交时:event字段在邮件程序中返回一个ID,任何想法如何防止这种情况?
<%= simple_form_for @sponsorship_inquiry, :method => :post do |f| %>
<%= f.input :spam, as: :hidden %>
<%= f.input :name %>
<%= f.input :phone %>
<%= f.input :email %>
<%= f.input :job_title %>
<%= f.input :company %>
<%= f.input :event, :collection => Event.where(:end_date.gt => Date.today, :is_live => 'true') %>
<%= f.input :message, as: :text, :input_html => { :cols => 5, :rows => 6 } %>
<%= f.button :submit %>
<% end %>
Name: <%= @sponsorship_inquiry.name %>
Phone: <%= @sponsorship_inquiry.name %>
E-Mail: <%= @sponsorship_inquiry.email %>
Job Title: <%= @sponsorship_inquiry.job_title %>
Company: <%= @sponsorship_inquiry.company %>
Event: <%= @sponsorship_inquiry.event %>
Message: <%= @sponsorship_inquiry.message %>
def new
@sponsorship_inquiry = SponsorshipInquiry.new
end
def create
# Hidden field for bots/spiders
redirect_to new_inquiry_path and return if params[:spam].present?
@sponsorship_inquiry = SponsorshipInquiry.new(params[:sponsorship_inquiry])
if @sponsorship_inquiry.valid?
SponsorshipInquiryMailer.admin(@sponsorship_inquiry).deliver
redirect_to sponsorship_inquiries_path
else
render :new
end
end
答案 0 :(得分:1)
需要您的SponsorshipInquiry模型。
如果你有
class SponsorshipInquiry < ActiveRecord::Base
belongs_to :event
end
尝试发送<%= @sponsorship_inquiry.event.name %>
或其他)
如果“event”只是与事件模型无关的字段,则需要从表单中解析所需的值。
IMHO
答案 1 :(得分:0)
如果您的问题是&#34;我是否可以修改表单以便我自动(神奇地?)将对象作为参数获得?&#34;,答案绝对没有。
您需要做的是根据收到的ID搜索数据库中的事件对象。