我在Rails中有一个复选框有问题:
我有两个模型,User和authorized_users,具有以下关联:
class AuthorizedUser < ActiveRecord::Base
has_one :user, as => :useraccount
和
class User < ActiveRecord::Base
belongs_to :useraccount, :polymorphic => true, :dependant => :destroy
在&#34;编辑&#34;用户的视图如果Authorized_user收到电子邮件(true)或不收到(false),我想要一个cheking的复选框:
<%= check_box(:authorized_user, :sendEmail, options = {:checked => true}, checked_value = true, unchecked_value = false) %>
同样精确的代码在&#34; new&#34; Authorized_user的视图,在创建新用户时,但在我编辑它们时,使用&#34;编辑&#34;用户视图,提交表单时没有显示错误,但数据库中的布尔单元格不受影响。
我需要修改哪些内容,以便在提交表单时保存更改?
非常感谢你。
Pd:有关更多信息,我可以说其他数据正在被修改而没有问题#34;编辑&#34;来自用户的视图,例如:
<%= f.text_field :phone %>
更改后的错误日志:
<% f.check_box :sendEmail %>
NoMethodError in Users#edit
Showing app/views/users/edit.html.erb where line #64 raised:
undefined method `sendEmail' for #<User:0xb5dbd96c>
Extracted source (around line #64):
63: <p>¿Desea recibir e-mails?/p>
64: <p><%= f.check_box :sendEmail %></p>
65: <%end%>
66: <br />
经过与@ marek-lipka的长时间讨论,我们得到了线索:
我们必须使用:useraccount作为链接器操作而不是:authorized_user:
<%= check_box(:useraccount, :sendEmail, options = {:checked => true}, checked_value = true, unchecked_value = false) %>
答案 0 :(得分:3)
您遇到此问题是因为渲染此复选框时不使用实际对象。应该是:
<%= f.check_box :send_email %>
请注意,我在Rails惯例中使用了send_email
名称,您应该采用它。