Ruby on rails 如何在rails中更新自定义表单?
我有下面的型号Ruby on rails 如何在rails中更新自定义表单?,ruby-on-rails,forms,Ruby On Rails,Forms,我有下面的型号 t.string "name" t.date "start_at" t.date "end_at" t.datetime "created_at" t.datetime "updated_at" t.string "trainer_id" t.string "venue_id" t.string "description" t.boolean "holy" t.integer "nxt" t.string "count
t.string "name"
t.date "start_at"
t.date "end_at"
t.datetime "created_at"
t.datetime "updated_at"
t.string "trainer_id"
t.string "venue_id"
t.string "description"
t.boolean "holy"
t.integer "nxt"
t.string "country_id"
t.string "status"
在我的表单中,Hear状态可以是“1”或“0”,我通过下拉列表加载了它,如下所示
enter code here
<%remote_form_for @event, :url => {:controller => 'events', :action => 'update'} do |f| %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :start_at %><br />
<%= calendar_date_select_tag "event[start_at]", "", :valid_date_check => "date.getDay() != 0 && date.getDay() != 6 && date.stripTime() > (new Date()).stripTime() ", :value=> @event["start_at"] %>
</p>
<p>
<%= f.label :end_at %><br />
<%= calendar_date_select_tag "event[end_at]", "", :valid_date_check => "date.getDay() != 0 && date.getDay() != 6 && date.stripTime() > (new Date()).stripTime()", :value=> @event["end_at"] %>
</p>
<p>
<%= f.label :trainer_id %><br />
<%= collection_select("event", "trainer_id", @trainers , :id, :name, {:prompt => 'Select a Trainer'})%>
</p>
<p>
<%= f.label :country_id %><br />
<%= collection_select("event", "country_id", @countries , :id, :name, {:prompt => true}, :id => 'xx') %>
<%= observe_field('xx', :url => { :controller => 'countries', :action => 'update_city_menu' },
:update => 'city_field_div',
:with => "'myval=' + escape(value)")
%>
<div id="city_field_div">
<%= collection_select("event", "venue_id", Venue.find(:all,:conditions=> [ "country_id = ?", (session[:CountID]).to_s]) , :id, :place, {:prompt => true}) %>
</div>
<p>
<%= f.label :status %><br/>
<select id="status">
<option value="0"<%= session[:status] == 1 ? ' selected="selected"' : '' %>>Completed</option>
<option value="1"<%= session[:status] == 0 ? ' selected="selected"' : '' %>>Not Completed</option>
</select>
</p>
<p>
<%= f.submit 'Update' %>
</p>
<% end %>
在此处输入代码
{:controller=>events',:action=>update'}do | f |%>
“date.getDay()!=0&&date.getDay()!=6&&date.stripTime()>(新日期()).stripTime()”,:value=>@event[“开始时间”]%>
“date.getDay()!=0&&date.getDay()!=6&&date.stripTime()>(新日期()).stripTime()”,:value=>@event[“结束于”]%>
“选择培训师”})%>
true},:id=>'xx')%>
{:controller=>'countries',:action=>'update\u city\u menu'},
:update=>'city\u field\u div',
:with=>“'myval='+转义(值)”)
%>
[“国家/地区id=?”,(会话[:CountID])。到],:id,:地点,{:prompt=>true})%>
完整的
未完成
所有数据都可以正确查看,但问题是当我尝试更新状态时,它不会更新状态字段[所有其他数据都会完全更新。有人能解释一下这个错误吗?即使它没有通过错误消息 我找到了答案,我们可以使用选择状态
<%= select( "event", "status", { "Completed" => "1", "Not Completed" => "0"}) %>
“1”、“未完成”=>“0”})%>
这将正确执行所有操作。:) 这是因为如果您将原始实现从问题更改为也应该工作,则param将作为事件[:status]发布,假设您在控制器中从params执行批量分配。