0

Rails を初めて使用する経験豊富な Java 開発者 - scaffolding での belongs_to 関係について疑問に思っています。

このような別の答えを見た

rails scaffold コマンドのサポートは、belongs_to または多対多のモデル ミドル テーブルの移行情報を生成しますか?

rails generate scaffold_controller obj:referencesそしてパターンに従った。

必要な文字列の代わりにインデックス/表示ページが表示されます - 識別子を指定するためにオーバーライドする必要が#<MyClass:xxxx>あるターゲット クラス (の親側) にメソッドはありますか?belongs_to

また、編集ビューでは、参照をドロップダウンではなく文字列として変更しようとしているように見えます-それを実現するために何か指定する必要がありますか?

ありがとう!

ところで-外部キーがドロップダウンに変わったDjangoとGrailsで同様の足場を機能させることができました。Rails も同様に簡単であることを願っていますが、それが恋しいだけです。

4

1 に答える 1

1

#to_sインスタンスが呼び出されているため、インスタンスのメソッドをオーバーライドできます。

class FooDoodle < ActiveRecord::Base
  def to_s
    name
  end
end

それは記録を示すときです。

ただし、実際にフォームを使用して関連付けを設定する場合、scaffold はビューに入力フィールドのみを生成するため、ID を入力できます。たとえば、ドロップダウン メニューを使用することもできますが、そのドロップダウンのオプションは何らかの方法で選択する必要があります。

たとえば、関連レコードが 2000 件ある場合、どのレコードを表示しますか? 2000年を示していますか?最初の10人だけ?そのロジックはコントローラーに入ります。

たとえば、次のようになります。

class FooDoodlesController < ApplicationController
  def edit
    @foodoodle = FooDoodle.find(params[:id])

    @friends = @foodoodle.possible_friends # or else
  end
end

selectandをoptions_for_select選択肢として使用

# _form.html.erb

<%= form_for @foodoodle do |f| %>
  <%= f.label :friend %>
  <%= f.select :friend, @friends.map{ |p| [p.to_s, p.id] } %>
于 2013-03-08T20:26:49.070 に答える