导轨一对多不保存

时间:2012-09-18 12:15:45

标签: ruby-on-rails one-to-many simple-form

我对Rails相对比较新,但是我在控制台中工作的所有东西都是在我的生活中,通过网页保存记录不会链接一对多的链接。

模型是:

class Contact < ActiveRecord::Base
  has_many :needs_personals
end

class NeedsPersonal < ActiveRecord::Base
  belongs_to :contact
  accepts_nested_attributes_for :contact
end

我正在使用simple_form,所以_form.html.erb看起来像这样:

<%= simple_form_for @needsPersonal do |f| %>
  <%= f.association :contact %>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

我的create方法看起来很标准,看起来像这样:

def create
  @needsPersonal = NeedsPersonal.new(params[:needsPersonal])

  if @needsPersonal.save
    redirect_to @needsPersonal, notice: 'NeedsPersonal was successfully created.'
  else
    render action: "new"
  end
end

由于某些原因,此代码未将contact_id分配给能够看到它被发布的表格。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

看一下从http://rails.nuvvo.com/lesson/5017-ruby-coding-convention中提取的命名约定。

类/模块

类和模块名称应该是名词;在大写情况下,每个内部单词的首字母大写。

例如:

class Raster,  class Raster::ImageSprite

方法

方法应该是动词。所有小写​​ASCII字母,单词用下划线分隔('_')

离。

run(), run_fast(), obj.background_color()

变量

变量名应为全部小写ASCII字母,单词用下划线('_')

分隔

例如:

i = 1 some_char = SomeChar.new() table_width = 0.0

常量

常量应全部为大写,单词用下划线('_')分隔。 ((嗯,有没有一个合理的背景来区分常数和类名,它同时是一个常数?)

例如:

MIN_LENGTH = 1
DEFAULT_HOST = "foo.example.com"

省略

说到'连接池'作为变量,您应该决定按范围选择名称,例如以下...

本地范围的

'conpool'(例如局部变量) “@connection_pool”用于类范围(例如实例变量)

答案 1 :(得分:0)

好的,所以我解决了。不知道为什么我几个小时前没有注意到。参数应该是params[:needs_personal]而不是params[:needsPersonal],如上所述。

喜欢锻炼为什么以及何时骆驼的情况以及何时强调。