2010-10-19 2 views
0

Я очень новичок в рельсах, поэтому, надеюсь, это должно быть быстрым решением. Я пишу приложение, которое ищет базу данных и перезагружает страницу с отображением желаемых результатов. В рельсах можно сохранить ввод в текстовое поле и опубликовать его так, чтобы его можно было найти и использовать в запросе для извлечения данных.Ruby on Rails, проводящие переменные

Мое мнение:

<title></title> 
</head> 

<body> 

    Search Collection <br> 
    <%= text_field "person", "name" %> 
    <%= select_tag(:search_id, '<option value="0">Search by</option><option  value="1">Make</option><option value="2">Condition</option> 
           <option value="3">Sport</option>') %> 
     <%= link_to 'New catalog', new_catalog_path %> 
    <br> 
    <br> 
    <%= link_to "Search", :search_text => , :action => :index %> <br> 
    <br> 


    <h1>Results</h1> 
    <%= will_paginate @catalogs %> 

    <table border="1"> 
     <tr> 
      <th>Catalog id</th> 

      <th>Year</th> 

      <th>Make</th> 

      <th>Card number</th> 

      <th>Number</th> 

      <th>Condition</th> 

      <th>Sport</th> 

      <th>Tracking list</th> 
     </tr> 
     <% for catalog in @catalogs %> 

     <tr> 
      <td><%= catalog.Catalog_ID %></td> 

      <td><%= catalog.Year %></td> 

      <td><%= catalog.Make %></td> 

      <td><%= catalog.Card_Number %></td> 

      <td><%= catalog.Number %></td> 

      <td><%= catalog.Condition %></td> 

      <td><%= catalog.Sport %></td> 

      <td><%= catalog.Tracking_List %></td> 

      <td><%= link_to 'Show', catalog %></td> 

      <td> 
      <%= link_to 'Edit', edit_catalog_path(catalog) %></td> 

      <td> 
      <%= link_to 'Destroy', catalog, :confirm => 'Are you sure?', :method => :delete %></td> 
     </tr> 
     <% end %> 
    </table> 
    <br> 

</body> 
метод

My Controller

def index 
@search_text = 'T206 White Border' 

@catalogs = Catalog.paginate_by_sql ['select * from catalogs where Make =\''+ @search_text+'\'' , 80000], :page => params[:page] 


end 

Быть нежным, если его легко исправить, я все еще привыкаю ко всему MVC вещь

ответ

1

В вашем вопросе есть лот, поэтому давайте попробуем разобраться в нем по одной штуке за раз. Во-первых, я предположим, что в вашей базе данных есть таблица с именем catalogs с столбцом make и что вы используете плагин will_paginate. Похоже, вы начали с копирования и изменения некоторых примеров прямо из документов. Во-первых, ваш контроллер - вам не нужен более сложный paginate_by_sql, вы можете использовать более простой paginate.

контроллер:

def index 
    @catalogs = Catalog.paginate(:all, :conditions => {:make => params[:search]}, :page => params[:page]) 
end 

Теперь ваш взгляд, только материал, имеющие отношение к поиску:

<% form_tag catalogs_path, :method => :get do %> 
    <%= text_field_tag 'search' %> 
    <%= submit_tag 'submit search' %> 
<% end %> 

И это все. Удачи!

+0

Это решило так много проблем haha ​​Спасибо тонну. Вы мудрым –

+0

Привет, похоже, вы новичок в stackoverflow. Принимая мой ответ, я благодарен вам за помощь. Если вы не принимаете хорошие ответы от людей, которые вам помогают, вы в конечном итоге перестанете получать помощь. Каждый раз, когда вы задаете вопрос, он отображает ваш процент принятия, чтобы люди знали, принимаете ли вы ответы или нет. –