Rails – 我需要一个复选框来更改数据库中的字段
我知道我以前做过这件事,但对于我的生活,我无法理解。
我有一个带有“被叫”字段的表格。 我需要使用复选框来更新数据库并检查“被叫”是否为“真”。 不需要是AJAX,只需更新字段即可。
table:rsvp字段:调用
万分感谢。
没有ajax的简单方法可能是使用表单内的复选框并使用复选框javascript onclick事件提交表单。
例:
查看 :
<% form_for @rsvp, :id => "rsvp" do |f| %> <%= f.check_box :called, :onclick => "$('#rsvp').submit()" %> <% end %>
这个如果你正在使用JQuery …原型onclick字符串将是:
$('rsvp').submit()
控制器 :
@rsvp = Rsvp.find(params[:id]) if @rsvp.update_attributes(params[:rsvp]) # success else # fail end
参考:
复选框
在视图中:
<% form_for :rsvp, :url => {:controller => "rsvp", :action => "update"} do |f| %> <%= f.check_box :called %> <%= f.submit "Update" %> <% end %>
在rsvp控制器中,更新方法:
@RSVPobject.updateAttribute(:called, params[:rsvp][:called])
如果您只是想通过单击复选框来执行此操作,则需要转到Ajax路。 尝试在视图中使用“observe_field”。
<%= observe_field ":called", :frequency => 0.25, :update => 'feedback_to_user', :url => {:action => :mark_as_called}, :with => 'called', :on => 'click' %>
所有细节都在这里 。
不要忘记调整路线,以便找到“mark_as_called”动作。