[Rails] Major form validation/submitting problem.
Hello,
I create a form with simple_form. Now I got 2 problems:
1)The validation fails, fx when a field is filled, the validation says
the field is empty and the field is not marked red.
Here is the controller:
def new
@action = Action.new
@note_type =
[['Ad','Ad'],['Promotion','Promotion'],['Poll','Poll'],['Location','Location']]
end
def create
@note_type =
[['Ad','Ad'],['Promotion','Promotion'],['Poll','Poll'],['Location','Location']]
@action = Action.new(params[:action_params])
if @action.save
flash[:success] = "New Action saved"
redirect_to "/"
else
render 'new'
end
end
private
def action_params
params.require(:action).permit(:action_name,
:startDate,:endDate,:contentURL,
:previewImageURL,:message,:noteType,
:prob,:maxSendingsDayAll,:maxSendingsTotalAll,
:maxSendingsDeviceAll,:maxSendingsDeviceTotal,
:updateInterval)
end
action.rb(model):
class Action < ActiveRecord::Base
VALID_URL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
before_save { self.contentURL = contentURL.downcase }
before_save { self.previewImageURL = previewImageURL.downcase }
validates :action_name, presence: true
validates :startDate, presence: true
validates :endDate, presence: true
validates :contentURL, presence: true,
format: { with: VALID_URL_REGEX }
validates :previewImageURL, presence: true,
format: { with: VALID_URL_REGEX }
validates :message, presence: true
validates :noteType, presence: true
validates :prob, presence: true
validates :maxSendingsDayAll, presence: true
validates :maxSendingsTotalAll, presence: true
validates :maxSendingsDeviceAll, presence: true
validates :maxSendingsDeviceTotal, presence: true
validates :updateInterval, presence: true
end
new.html.erb
<h1>New Action</h1>
<div class="row">
<div class="span6 offset4">
<%= simple_form_for(@action) do |f|%>
<%= render 'shared/error_messages' %>
<%=f.label :action_name, "Action name"%>
<%=f.text_field :action_name%></br>
<%=f.input :startDate,:as => :datetime_picker, :label =>"Start
date"%>
<%=f.input :endDate,:as => :datetime_picker, :label =>"End date"%>
<%=f.label :contentURL, "Content url"%>
<%=f.text_field :contentURL%></br>
<%=f.label :previewImageURL, "Preview image url"%>
<%=f.text_field :previewImageURL%></br>
<%=f.label :message, "Message"%>
<%=f.text_area :message%></br>
<%=f.label :noteType, "Note type"%>
<%=f.select(:noteType, @note_type,:html =>("multiple"))%></br></br>
<%=f.label :prob, "Sending probhability"%>
<%=f.number_field :prob%></br>
<%=f.label :maxSendingsDayAll, "Maximum sendings per day"%>
<%=f.number_field :maxSendingsDayAll%></br>
<%=f.label :maxSendingsTotalAll, "Maximum sendings"%>
<%=f.number_field :maxSendingsTotalAll%></br>
<%=f.label :maxSendingsDeviceAll, "Maximum sendings per device"%>
<%=f.number_field :maxSendingsDeviceAll%></br>
<%=f.label :maxSendingsDeviceTotal, "Maximum sendings per device per
day"%>
<%=f.number_field :maxSendingsDeviceTotal%></br>
<%=f.label :updateInterval, "Action resend interval"%>
<%=f.number_field :updateInterval%></br>
<%= f.submit "Create Action", class: "btn btn-large btn-primary" %>
<%end%>
</div>
</div>
<script type="text/javascript">
$('.datetimepicker').datetimepicker({
language: 'en',
});
$("#action_noteType").select2({
width: "470px"
});
</script>
I know it is not good style to post so much code and asking for a
perfect solution. But I worked several days on this problem, and don't
know how to solve it :( Thanks for your help
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/45f13c7951fa6ce7ccf2009288d5f95c%40ruby-forum.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home