如何从我的rails应用程序查询数据库?

时间:2016-08-01 04:08:59

标签: mysql ruby-on-rails

::我想查询我的数据库,将结果保存在变量中,并在该变量的视图中显示这些结果。我不知道如何显示或保存结果。

执行此操作的正确方法是什么?

以下是代码:

这是表格(第一页):

                                # submit: A controller | shoot: A method
<%= simple_form_for :computer , url:submit_shoot_path , :method => :get  do |f| %>

        <%= f.input :used_at, collection: ["Home" , "Work" , "Travel"] , wrapper_html: { class: 'col-xs-3'} %>
        <%= f.input :used_for, collection: [ "Programming", "Gaming", "Blogging"], wrapper_html: { class: 'col-xs-3'} %>
        <br/>
        <%= f.input :cash, input_html: { max: 500 } , wrapper_html: { class: 'col-xs-3' } %>
        <br/>
        <%= f.button :submit, value: 'Submit' , :name => nil %>
    <% end %>

这是我的模特:

   # MODEL
class Computer < ActiveRecord::Base
  has_one :name
  has_one :used_at
  has_one :used_for
  has_one :cash
end

控制器:

    class SubmitController < ApplicationController
   def shoot
   used_at = params[:where_at]
  used_for = params[:used_at]
  cash = params[:amount]
   #I tried to store the variable.
  #Is this correct? v
  search = Computer.find(8)
  render:shoot
  end
  end

查看: 我想列出受查询影响的所有行。(例如:查找*计算机,其中price =&#39; 400&#39;) 结果将是这样的:

名称:东芝(名称)|价格:1.00美元(现金)|家(used_at)|编程(used_for)。

此页面显示没有错误。它加载但如何加载查询结果? 结果(第二页):shoot.html.erb

**现在在视图中我想列出列表中的db查询结果(li)**

    <html>
<head>Hello</head>

<body>
<table>
  <ul>
      <!-- Isn't there a search.each do |t| method that goes here. -->
  </ul>
</table>
</body>
</html>

拜托,我问你,SOF ruby​​ist帮助我解决这个问题。

注意:请不要向guides.rubyonrails.org推荐。

1 个答案:

答案 0 :(得分:0)

在您的SubmitController.rb

@search = Computer.find(8)  ## @search is a instance variable now. You can use it in views. @Search contains a record from computer whose id is 8.

然后在View文件中

<%= @search.name  %>  ## i assume name is a column in computers method.
<%= @search.xyz %> ## xyz is again a column name and so on...

如果您在SubmitControoler.rb中写道

 @search = Computer.all  ## fetch all the records from computers tables.

然后它将获取Computer类的对象集合。您可以在下面进行迭代:

 <% @search.each do |x| %>
   <%= x.name %>
   <%= x.xyz %>
     ......
 <% end %>