我有用户类(使用设计),我的用户类有电子邮件订阅
class User < ActiveRecord::Base
...
has_one :email_sub, :class_name => "Subscriptions::EmailSub", :dependent => :destroy
end
我有路线
match 'profile', :controller => 'users', :action => 'view_profile'
以及调用特定文件的相关控制器
class UsersController < ApplicationController
def profile
@subscriptions_email_sub = current_user.email_sub
end
end
并且在 profile.html.erb 文件中有一个表单(技术上包含在模板中的一部分,但我认为这不会产生影响),用户可以使用单选按钮设置订阅选项(订阅或取消订阅)。表单的按钮部分如下:
<%= form_for(@subscriptions_email_sub) do |f| %>
...
<tr>
<td>Announcements</td>
<td><%= f.radio_button :announcements, 'announcements', :checked => @subscriptions_email_sub.announcements %></td>
<td><%= f.radio_button :announcements, 'announcements', :checked => !@subscriptions_email_sub.announcements %></td>
<td></td>
<td>Updates about the website and service</td>
</tr>
<%= f.submit "Update Subscriptions", :id => 'update_subs' %>
<% end %>
我正在尝试添加咖啡脚本,因此当用户单击按钮时,它会保存模型并通知用户设置已更新(如果出现错误,则会发出警报)。
(或者,我可以保存模型并重新加载整个页面。)
到目前为止,我在 users.js.coffee
$ ->
$('#update_subs').click ->
$('form').submit();
我不知道如何让页面重新加载。我认为表单提交会导致它使用 Subscriptions::EmailSub 的控制器,然后它会尝试加载 app/views/subscriptions/email_subs/show.html.erb 我怀疑我可能必须使用 javascript 来保存类和重新加载页面。
谢谢你的帮助。