0

私はRailsに比較的慣れていませんが、コンソールですべてが機能していますが、私の人生では、Webページを介してレコードを保存しても、1対多のリンクはリンクされていません。

モデルは次のとおりです。

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 をテーブルに割り当てませんが、投稿されていることを確認できます。

何か案は?

4

2 に答える 2

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"

省略

変数としての「接続プール」について言えば、次のようなスコープで名前を優先することを決定する必要があります…</p>

ローカル スコープ (ローカル変数など) の場合は 'conpool' クラス スコープ (インスタンス変数など) の場合は '@connection_pool'

于 2012-09-18T12:55:19.100 に答える
0

わかりましたので、解決しました。なぜこの数時間前に気付かなかったのかわからない。パラメータは、上記のようにする必要がparams[:needs_personal]ありparams[:needsPersonal]ます。

キャメルケースの場合とアンダースコアの場合の理由と場所を試してみたい.

于 2012-09-18T12:46:24.600 に答える