2013-12-12 3 views
0

со стороны контроллера, он отправляет данные, как это,Как я могу получить ключ, значение такого ответа в Rails?

{:room_id=>383, :title=>"111's new appointment", :description=>"new content", :organizer=>"4444 1111", :appointment_id=>"266", :is_owner=>true, :roomtype=>"1", :c 
onference_time=>"12.12 10:00 ~ 12.12 23:00", :maximun_users=>"3", :current_user_list=>[#<Client firstname: "4444", lastname: "1111">], :users=>"1/3"} 

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

:current_user_list=>[#<Client firstname: "4444", lastname: "1111">] 

, как я могу получить ключ и значение здесь???

<% @appointments.each do |appointment| %> 
      <%=Rails.logger.debug("**********APPOINTEMTN : : : : : : : ******"+appointment[:current_user_list].to_s)%> 
      <% if appointment[:is_owner] %> 
      <tr class="roomlist_myrow"> 

       <td><%=h appointment[:room_id] %></td> 
       <td><%=h appointment[:title] %></td> 
       <td><%=h get_roomtype_from_room_list().rassoc(appointment[:roomtype])[0] %></td> 
       <td><%=h appointment[:users] %></td> 
       <td style="color: #a9a9a9"><%=h appointment[:organizer] %></td> 
       <td style="color: #3c3c3c"><%=h appointment[:conference_time] %></td> 

       <td> 
        <% url = get_appointment_server(appointment[:appointment_id]) %> 
        <%= button_to_function "Enter", "enter_room('#{appointment[:room_id]}','#{url}')"%> 
        <%= link_to ("<button>Modify</button>".html_safe), make_params({ :action => :edit, :id => appointment[:appointment_id] }) %> 
        <%= link_to ("<button>Delete</button>".html_safe), make_params({ :action => :destroy, :id => appointment[:appointment_id] }), 
                           method: :delete, data: { confirm: 'Are you sure?' } %> 
       </td> 
       </tr> 
      <%else%> 
       <tr class="roomlist_row"> 

       <td><%=h appointment[:room_id] %></td> 
       <td><%=h appointment[:title] %></td> 
       <td><%=h get_roomtype_from_room_list().rassoc(appointment[:roomtype])[0] %></td> 
       <td><%=h appointment[:users] %></td> 
       <td style="color: #a9a9a9"><%=h appointment[:organizer] %></td> 
       <td style="color: #3c3c3c"><%=h appointment[:conference_time] %></td> 

       <td id="roomlist_notowner_td"> 
        <% url = get_appointment_server(appointment[:appointment_id]) %> 
        <%= button_to_function "Enter", "enter_room('#{appointment[:room_id]}','#{url}')"%> 

       </td> 
       </tr> 
      <%end%> 

      <% end %> 

если я напечатать это показывает,

<%=Rails.logger.debug("**********APPOINTEMTN : : : : : : : ******"+appointment[:current_user_list].to_s)%> 
**********APPOINTEMTN : : : : : : : ******#<ActiveRecord::Relation:0x4d48880> 

Любое хорошее решение?

ответ

0

Проложить через него: appointment[:current_user_list].each do |user| затем распечатать user.firstname или что угодно.

+0

Спасибо. Оно работает!! – Canna

0

Если appointment[:current_user_list] является массив obect, то вы можете попробовать эти публичные методы:

hash.each_key {| key_value_array | block} Итерирует через хэш, вызывая блок один раз для каждого ключа, передавая ключ и значение в качестве параметров.

или это

hash.each {| ключ, значение | block} Итерирует через хэш, вызывая блок один раз для каждого ключа, передавая значение ключа как двухэлементный массив.

Найдено здесь: http://www.tutorialspoint.com/ruby/ruby_hashes.htm

Смежные вопросы