4

私の最後のRailsプロジェクトでは、次のように、すべてのリクエストで常にパラメータを渡すために上書きdefault_url_optionsする必要がありました:application_controller.rb

def default_url_options 
  { :my_default_param => my_param_value }
end  

現在、すべての URL ヘルパーは、生成されたすべての URL の最後に my_default_param を添付します。たとえばuser_url(@current_user)、次のような URL を生成します。

http://www.example.com/users/1?&my_default_param=my_param_value 

しかし、 my_default_param なしで URL を生成する必要がある場合があります。user_url(@current_user, some_option: some_option_value) のみを返すように、url ヘルパーに渡すことができるオプションはありますか。

http://www.example.com/users/1?&my_default_param=my_param_value

?

PN: 試してみまし:overwrite_params=> { }たが、おそらく default_url_options の前に評価されるため、動作しません。

そうでない場合、my_default_param を添付せずに @current_user URL を取得する別の方法はありますか?

ありがとうございました。

4

1 に答える 1

4

default_url_options options必要に応じて使用できるパラメータが1つあります。

def default_url_options( options = {} )

  use_defaults = options.delete( :use_defaults )

  if use_defaults
    { :my_default_param => 'my_param_value' }
  else
    {}
  end

end

または、ロジックを逆にすることもできます。

def default_url_options( options = {} )

  ignore_defaults = options.delete( :ignore_defaults )

  if ignore_defaults
    {}
  else
    { :my_default_param => 'my_param_value' }
  end

end
于 2012-07-13T15:30:35.037 に答える