我的用户模型包含:name,:email和:password字段.所有3个都有长度验证."更新帐户"网页允许用户更新其姓名和电子邮件地址,但不能更新密码.提交时,params [:user]是
{"name"=>"Joe User", "email"=>"user@example.com"}
Run Code Online (Sandbox Code Playgroud)
请注意,没有"密码"键,因为表单不包含此类输入字段.
我打电话的时候
@user.update_attributes(params[:user])
Run Code Online (Sandbox Code Playgroud)
密码验证失败.但是,由于我没有尝试更新密码,因此我不希望密码验证在此更新上运行.当params [:user]不包含"密码"键时,我很困惑为什么密码验证正在运行.
请注意,我希望在其他地方有一个单独的网页,允许用户更新他的密码.对于该提交,密码验证应该运行.
谢谢.
我有一个模型House
,有许多布尔属性,如has_fireplace
,has_basement
,has_garage
,等. House
有大约30个这样的布尔属性.构建此模型以实现高效数据库存储和搜索的最佳方法是什么?
我想最终搜索所有Houses
有壁炉和车库的东西.
我想,天真的方法是在模型中简单地添加30个布尔属性,每个属性对应于数据库中的一列,但我很好奇是否有一个我不知道的Rails最佳实践.
我是Rails的新手.
在Rails中设计/构建多页表单的最佳方法是什么?我希望表单在提交表单的第一页时立即在数据库中创建新记录,并且表单的每个后续页面都要在数据库中更新该记录.
我希望在提交第一页之后立即创建记录的原因是,可以存在用户稍后返回完成的未完成记录的概念.
一旦创建,我想允许用户通过直接转到该部分来编辑模型的任何部分.
我知道足够的Rails如果你指导我从概念上构建这个概念的最佳方法,我应该能够自己弄清楚代码.
谢谢.
我有一个Rails 3应用程序,可以创建和删除产品.索引页面列出了所有产品.列表中每个产品旁边都有一个删除链接:
<%= link_to "Delete", product, :method => :delete, :title => "Delete" %>
Run Code Online (Sandbox Code Playgroud)
这在HTML中看起来像这样:
<a href="/products/104" data-method="delete" rel="nofollow" title="Delete">Delete</a>
Run Code Online (Sandbox Code Playgroud)
这一直很好.
我已经达到了我想在我的应用程序中安装JQuery的程度.我按照几个网页上提供的步骤(例如,这个或这个).
安装JQuery后,上面的"删除"链接中断.Rails尝试处理destroy
动作,而不是处理动作!ProductsController
show
我的猜测是它与Web浏览器本身不能发送DELETE
请求这一事实有关,因此Rails使用JavaScript"伪造"这样的请求,这就是为什么我在尝试安装JQuery 之前有以下行:
<%= javascript_include_tag :defaults %>
Run Code Online (Sandbox Code Playgroud)
编辑:在JQuery安装期间的某些事情必须使得用于"伪造" DELETE
请求的Javascript 不再起作用,从而导致show
调用该操作.但究竟发生了什么我不知道......
有人有主意吗?谢谢.