2011-11-03 14 views
6

'a bağlanmasına neden oluyor. Rails 3.1.1 geliştiriyorum.
Modelde url_helpers dahil, kaydetme modelinde bir ArgumentError neden olur., Rails.application.routes.url_helpers, ArgumentError Eksik ana bilgisayarının

class Medium < ActiveRecord::Base 
    include Rails.application.routes.url_helpers 

    . 
    . 
end 

class MediaController < ApplicationController 

    def create 
    @medium = Medium.new(params[:medium]) 
    @media.save # => cause ArgumentError 
    end 
end 

ArgumentError (bağlantı veren ev sahipliği Eksik veriniz:! Konak parametresini ayarlamak default_url_options [: host] veya ayarlayın: only_path true):

da url_helper etmiyor dahil başka bir model hataya sebep oluyor.
Sorun nedir?
Şimdiden teşekkürler.

cevap

-2

Bu hata genellikle, kullanılmaması gereken yerlerde herhangi bir URL yardımcısını kullanmaya çalıştığımızda ortaya çıkar. Örneğin, reset_password_url(@user) kullanarak mailer sınıfı eyleminden parola kaydı url oluşturmaya çalışırsam, aynı hatayı alırım.

Lütfen model sınıfınızda _path veya _url yöntemleri kullanmadığınızdan emin olun. Üstelik modelin içinde url_helpers kullanmanın en iyi uygulaması olduğunu düşünmüyorum.

Rails.application.routes.url_helpers.media_url(:host => "localhost:3000")

veya böyle farklı bir yol:

Rails.application.routes.url_helpers.media_url(self, :host => AppConfig.host)

AppConfig

+5

Cevabınız için teşekkür ederiz. Aslında, kendi kendine url'yi diğer denetleyiciye iletmek için _path yöntemlerini kullanan model, bu nedenle url yardımcılarını da içerir. Çözümü buldum. Dahil değil, satır içi arayın. 'Rails.application.routes.url_helpers.medium_path (kendi)' Şimdi iyi çalışıyor. – DIGITALSQUAD

3

Sen yardımcı kullandığınız çağrısında bağımsız değişken olarak ana geçmesi gerekiyor .host, çevreye bağlı olarak ana bilgisayardır (localhost: geliştirme env'si için 300).