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”动作。