У меня проблема с буксированием приложений в рубине.Ruby on Rails ActiveResource :: ServerError два приложения
Моего первое приложение, бэкенд, отлично работает, но когда я хочу два подключение второго приложения с первым он показывает мне ошибку:
ActiveResource::ServerError in PagesController#index
Failed. Response code = 500. Response message = Internal Server Error .
я выполнить тэ первого приложения (бэкэнд) в порту 3000 и второй app (frontend) 3001. Бэкэнд содержит привязку к базе данных и работает хорошо, но когда я подключаю первое приложение. Он бросает мне эту ошибку в интерфейсе:
...
Page Load (43.2ms) SELECT "pages".* FROM "pages" WHERE "pages"."id" = 10 LIMIT 1
Rendered api/pages/show.json.rabl (2939.6ms)
Completed 500 Internal Server Error in 3082ms
NoMethodError - undefined method `url' for nil:NilClass:
app/models/post.rb:45:in `uri'
(eval):143:in `block (2 levels) in eval_source'
(eval):128:in `block in eval_source'
rabl (0.11.5) lib/rabl/builder.rb:152:in `node'
rabl (0.11.5) lib/rabl/builder.rb:114:in `block in compile_settings'
rabl (0.11.5) lib/rabl/builder.rb:113:in `compile_settings'
rabl (0.11.5) lib/rabl/builder.rb:58:in `block in to_hash'
rabl (0.11.5) lib/rabl/builder.rb:262:in `cache_results'
rabl (0.11.5) lib/rabl/builder.rb:49:in `to_hash'
rabl (0.11.5) lib/rabl/engine.rb:86:in `to_hash'
rabl (0.11.5) lib/rabl/engine.rb:101:in `to_dumpable'
...
И эта ошибка в интерфейсе:
...
Started GET "/" for 127.0.0.1 at 2014-12-29 04:31:44 +0100
Processing by PagesController#index as HTML
Completed 500 Internal Server Error in 3179ms
ActiveResource::ServerError (Failed. Response code = 500. Response message = Internal Server Error .):
app/controllers/pages_controller.rb:9:in `index'
Rendered vendor/bundle/ruby/2.1.0/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.1ms)
Rendered vendor/bundle/ruby/2.1.0/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (2.0ms)
Rendered vendor/bundle/ruby/2.1.0/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (18.7ms)
У меня есть это в моей config.yml (внешний интерфейс):
common:
development:
api: 'http://localhost:3000/api'
uri: 'http://localhost:3000/'
production:
api: 'http://localhost:3000/api'
uri: 'http://localhost:3000/'
Это в мой page.tb (frontend):
class Page < ActiveResource::Base
self.site = Baku.api
self.format = :json
def self.search(q,locale)
result = Page.get(:search, q: "#{q}", locale: locale)
object = OpenStruct.new(result)
object
end
end
Это в post.rb (внешний интерфейс):
class Post < ActiveResource::Base
self.format = :json
end
Я не понимаю эту проблему, я думаю, что Conection между приложением является правильным, но это всегда показывает ошибку:
ActiveResource::ServerError in PagesController#index
Failed. Response code = 500. Response message = Internal Server Error .
В строке 45 of pos.rb У меня есть:
def uri
"/noticias#{self.widget.page.url}/#{self.name.parameterize}/#{self.id}"
end
Я не понимаю, что в этом плохого.
В строке 45 у меня есть: определение функции Uri "/noticias#{self.widget.page.url}/#{self.name.parameterize}/#{self.id}" end' Редактирование вопроса. –
@JohnIDelete: Я обновил свой ответ. 'self.widget.page' возвращает nil. У вас есть виджет без страницы. Поэтому вы не можете называть 'url'. – spickermann