0

国テーブルを参照するクライアント テーブルがあります。クライアントを挿入すると、国がドロップダウンでユーザーに提供され、クライアント テーブルに国の ID が挿入されます。クライアントの表示ページに Id の代わりに国名を表示するにはどうすればよいですか。

4

4 に答える 4

0

私はこれを入れて、今はうまくいっているようです。それは正しい解決策ですか?

<%= Country.find(@client.country_id).name %>
于 2013-01-29T03:59:45.397 に答える
0

選択タグとデータベース テーブルを扱うときは、collection_select http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_selectを使用する方が良いといつも思います。

あなたが使用することができます

collection_select :client, :country_id, Country.all, :id, :name
于 2013-01-29T02:11:43.603 に答える
0

@client.country.name以下のような関連付けが設定されていると思います。その場合は、代わりに関連付けを通じて国名を参照できます@client.country_id(変数とフィールド名については、ここでいくつかの仮定を置いています)。

協会は次のように設定されます。

class Client < ActiveRecord::Base

  has_one :country

  ...

end


class Country < ActiveRecord::Base

  belongs_to :client

  ...

end
于 2013-01-29T01:25:08.093 に答える
0

何かのようなもの...

<%= select_tag 'country_id', options_from_collection_for_select(@countries, 'id', 'name') %>

http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag

以下のコメントによると、URL で単語を取得する最も簡単な方法は、次のようなモードで params をオーバーライドすることです。

def to_param
  "#{id}-#{name}".parameterize
end

しかし、それは完璧ではなく、数が含まれています。番号を取り除くには、通常スラッグと呼ばれる一意の文字列を作成し、スラッグによってすべての検索を行います。

于 2013-01-29T01:25:48.600 に答える