filter 要更好一点
知乎政府版
是因为没有查询,User.find(params[:id]) 只查询了 user 表的信息,没有查询 userinfo 表的信息。
应该是
<%= f.fields_for @user.address do |address| %>
没有显示出来值,本身有值吗?
我这个例子是 user 和 address
class User < ActiveRecord::Base
has_one :address
end
class Address < ActiveRecord::Base
belongs_to :user
end
<%= form_for(@user) do |f| %>
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<%= f.fields_for :address do |address| %>
<div class="field">
<%= address.label :city %><br/>
<%= address.text_field :city %>
</div>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
form_for @user
投一个,帮忙看看!!
这应该是约定的问题,约定好 params 就是一个 hash。 不知道你能否换一个名字呢?
其实你要修改的是一个资源,用户信息,只是你分成两个对象,将一部分属性分离出去了。一个 controller 就可以了!
问题不弱,刚开始大家都是弱的。不怕问题弱,你描述的很清楚,这样很好,大家就知道如何帮你。就怕有些人描述不清,大家想帮都不知道如何下手。
你是不是用 rails g scaffold user rails g scaffold user_info references:user 创建的结构。
model 和 controller 不是一回事。 model 是你的对象模型,表示对象的关系。 controller 是响应请求用的,定位资源,和 model 没有直接关系。 没有强制 1:1,也不应该强制 1:1。
site:http://ruby-china.org topic
model 和 controller 不是一回事。 你的 controller 有几个,难道是两个,一个 userscontroller,一个 userinfoscontroller,应该是一个。
处于什么考虑不让修改邮箱地址呢?
两者可以互补,做的事应该不在一个层面,不存在替代。
两个层面上的东西。 The RSpec Book.pdf 里面讲得很清楚。
我的理解: cucumber 是从应用级别看系统,更多的领域人员的语言,也可以说的系统行为吧。 rspec 是 from inside out 的很好的一种方式,从外到里的看对象的交互,对象行为。
#7 楼 @knwang 合适的工具帮助我们创造,确实是这样的,可以集中精力做创造的事 #2 楼 @chenge http://cukes.info/ 这个很好
编程语言也是这样,学一门编程语言最大的好处是能带来一个新的视角,提升或集中思维的层面。
这句话这两年开始有体会了,以前一直工作在.NET 平台,这两年开始学习 python,linux,ruby,最近集中学习 ror,新视角,新思维方式,慢慢的有了一点点感觉!!
sudo 试试
表结构肯定是三张比较好,因为三个东西表述的不是一个东西,都有自己的属性。 就算三张表也可以做第二种 model 关系吧。 表结构和 model 关系不是一一对应的。 has_many 只是代表有主外键的关系,并不是说要两张表的意思!!
我均为在 A 中调用到 C,什么意思,说得明白点,是不是有几个错别字啊!
这个情况是不是可以这么理解。 那就电子商务的订单来说吧。 用户一次购买很多商品,每个商品还有多个包装规格(1kg,2kg),每种商品要求生成一个订单,会发送给一个厂商。
purchase 购买单 order 订单 orderitem 订单明细
是这么个结构吧。
哎呀妈呀,ABC 的故事还没有搞定吗?
刚才搞个 demo 验证了一下,在 controller 中
params[:user].delete(:password)
然后调用
@user.update_attributes(params[:user])
就不会发生验证了。
Html 中是否包含 password_field 都没有问题。
我是举个例子。你搞两个 link 到两个版本的 ruby 就可以这么干了。 ln -s ruby187 ruby187/ruby ln -s ruby193 ruby193/ruby
ruby192 demo.rb
ruby187 demo2.rb
估计是我哪里写的有问题,我再找找看吧。