Использование rails-sqlserver-adapter для отображения данных в приложении rails - PullRequest
0 голосов
/ 15 марта 2012

https://github.com/rails-sqlserver/activerecord-sqlserver-adapter

Удивительный инструмент, я подключился к SQLServer 2008 без особых проблем и выяснить, как выполнить SP с консоли рельсов, но я не знаю, где идти отсюда :(

Это кажется глупым вопросом, но я новичок в развитие, поэтому любая помощь будет принята с благодарностью!

Вот как я запустил SP (PD_DE_getSegmentProfile) из консоли:

$ PdDeSegmentMaster.execute_procedure :PD_DE_getSegmentProfile, 23, 'all' 

Execute Procedure (49.6ms)  EXEC PD_DE_getSegmentProfile 23, 'all' 
 => [{"segment_code"=>"23", "profile_element"=>"age_range", 
"Value"=>"35-54"}, {"segment_code"=>"23", 
"profile_element"=>"avg_HH_size", "Value"=>"4.10"} 

Я знаю, что это хеш, но я не знаю, как вызвать его из моего приложения, показать его в виде, и так далее. Я не очень заинтересован в хранении это так, как я могу просто вспомнить SP, чтобы получить его снова. Куда я положу ИП позвонить в приложение? Контроллер? Модель?

database.yml, externaldb.rb (модель) и основы, необходимые для настройки соединения, хороши, просто нужно переместить возвращенный хеш в HTML.

1 Ответ

1 голос
/ 15 марта 2012

Лучше всего перенести бизнес-логику на модель.

Позвольте нам сказать, что вы используете контроллер "PdDeSegmentMastersController"

class PdDeSegmentMasterController < ActionController
  def get_segment_profile
    @segment_profiles = PdDeSegmentMaster.get_segment_profile
  end 
end

В вашей модели "PdDeSegmentMaster"

class PdDeSegmentMaster < ActiveRecord::Base
 #write a method to execute you stored procedure
  def self.get_segment_profile
    self.execute_procedure :PD_DE_getSegmentProfile, 23, 'all'
  end
end

По вашему мнению "get_segment_profile.html.erb"

<% if @segment_profiles.present? %>
<table>
 <tr>
   <th>segment_code</th>
   <th>profile_element</th>
   <th>Value</th>
 </tr>
 <% @segment_profiles.each do | segment_profile| %>
   <tr>
    <td><%= segment_profile["segment_code"] %></td>
    <td><%= segment_profile["profile_element"] %></td>
    <td><%= segment_profile["Value"] %></td>
   </tr>
 <% end %>
</table> 
<% else %>
 <h1>No segment profiles found!</h1>
<% end %>

Дайте мне знать, если у вас все еще есть блоки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...