0

ブートストラップ モーダルを使用してデータを作成しようとしています。これが私が持っているものです。

show アクションを持つ UsersController があります。表示ページには、新しい UserResult を作成するモーダルを表示するボタンがあります。UserResultsController には new メソッドと create メソッドがありますが、表示ページでモーダルを作成するため、UserResultsController からモーダルにデータを渡すことができません。

def new
  @some_data = params[:some_data] # coming from users#show
  @user_result = current_user.user_results.new
end

モーダルを表示するときにこのアクションが呼び出されることはないため、@some_data を渡すことができないため、UserResult モデルの有効なフォームを作成できません。users#show アクションから「Add Result」ボタンが呼び出されたときに、この new が確実に呼び出されるようにするにはどうすればよいですか?

ちなみに、結果追加ボタンは以下の通りです。

link_to 'Add Result', new_user_result_path(some_data: :some_data), class: 'btn btn-primary btn-mini', data: { toggle: 'modal', target: '#add-result-modal' }, remote: true

クイック編集: users#show アクションに @user_result を指定せずに表示ページを起動しようとすると、次のエラーが発生します。undefined method model_name for NilClass:Class

4

1 に答える 1

0

users_controller が UserResults_Controller にアクセスできないことを意味する場合は、それらの間の関係を定義する必要があります。
User モデルに以下を追加する必要があります。

has_many :UserResults

そして、あなたの UserResults_Controller に次を追加します。

belongs_to :User

これがあなたの言いたいことだと思います。

于 2013-07-11T19:41:38.837 に答える