【问题标题】:Rails render html from mysql2Rails 从 mysql2 渲染 html
【发布时间】:2016-03-06 05:04:14
【问题描述】:

我想从 mysql2 渲染 html。怎么了? 这是错误代码

NoMethodError in Admin::Stores#index
Showing /home/rok/Development/Pan/app/views/admin/stores/index.html.erb 

第 15 行出现的位置:

undefined method `name' for #<Hash:0x007f627f0cf808>
Extracted source (around line #15):

    13   <% @store_list.each do |stores| %>
    14      <tr>
    15         <th><%= stores.name %> </th>
    16         <td><%= stores.address %></td>
    17         <th><%= stores.phone %></th>
    18      </tr>

这是我的查看代码
index.html.erb

  <% @store_list.each do |stores| %>
  <tr>
     <th><%= stores.name %> </th>
     <td><%= stores.address %></td>
     <th><%= stores.phone %></th>
  </tr>
  <% end %>

这是我的控制器代码

    class Admin::StoresController < ApplicationController
      $client = Mysql2::Client.new(:host => "localhost", :username => "rok", :password => "xxxxxx@", :database => "Pan_development")

      def index
        @store_list = $client.query('select * from stores')
      end

    end

我的路线

namespace :admin do
  resources :stores
end

搜索路线

admin_stores GET    /admin/stores(.:format)           admin/stores#index
             POST   /admin/stores(.:format)           admin/stores#create
new_admin_store GET    /admin/stores/new(.:format)       admin/stores#new
edit_admin_store GET    /admin/stores/:id/edit(.:format)  admin/stores#edit
admin_store GET    /admin/stores/:id(.:format)       admin/stores#show
             PATCH  /admin/stores/:id(.:format)       admin/stores#update
             PUT    /admin/stores/:id(.:format)       admin/stores#update
             DELETE /admin/stores/:id(.:format)       admin/stores#destroy

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 hash ruby-on-rails-3.2


    【解决方案1】:

    问题

    undefined method `name' for #<Hash:0x007f627f0cf808>
    

    查看您的错误消息,stores 是一个哈希。您无法使用 . 运算符访问哈希键/值。

    解决方案

    您应该能够通过使用stores[:name]stores['name] 访问商店的name。请参阅documentation,了解如何在哈希中检索键的值。

    所以,这应该可以解决您的问题:

    <% @store_list.each do |stores| %>
        <tr>
          <th><%= stores['name'] %> </th>
          <td><%= stores['address'] %></td>
          <th><%= stores['phone'] %></th>
        </tr>
    <% end %>
    

    【讨论】:

    • 感谢您的回答。没有错误但不传递数据。我不知道@store_list 返回类型。
    猜你喜欢
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    相关资源
    最近更新 更多