2013-10-24 3 views
-1

Я пытаюсь использовать will_paginate для списка элементов, которые я хочу отобразить. Существует форма с выпадающими выборками для извлечения объектов по статусу. Это мой контроллерПалитра не работает правильно в рельсах

def list 
    @person = Person.find_by_id(session[:person_id]) 
        params[:status] = params[:redirect_status] if params.has_key?('redirect_status') 
        @statuses = Peptide.statuses 
        @status = 'Not Ordered' 
        @status = params[:status] if params[:status] != nil || params[:status] == '' 
        @peptides = Peptide.find(:all, :conditions => ['status = ?', @status]).paginate(:per_page => 30, :page => params[:page]) 

    if Peptide.count.zero? 
     flash[:notice] = "There are not any peptides entered" 
     redirect_to :action => 'new' 
    end#if zero 
    end 

Это в представлении

<form action="/peptide/create_spreadsheet_of_not_ordered" enctype="multipart/form-data" method="post"> 
    <table class="sortable" cellpading="5" cellspacing="2" width="100"> 
    <tr class= "header-line"> 
    <th>SS</th> 
    <th>Status</th> 
    <th>Peptide</th> 
    <th>Gene</th> 
    <th>Submitter</th> 
    <th>Created</th> 
    <th>Updated</th> 
    <th>Sequence</th> 
    <th>Modification</th> 
    <th>Vendor</th> 
</tr> 
<% for @peptide in @peptides.reverse %> 
<tr valign = "top" class= "<%= cycle('color_one', 'color_two') %>"> 
<!--an error here during development likely indicates that the people table has not be repopulated or 
that no submitter primer is present for a primer--> 
    <td sorttable_customkey = 0 > <%=check_box_tag "box[]", @peptide.id %> 
    <td><%= @peptide.status%></td> 
    <td class><%= link_to @peptide.name, :action => :report, :id => @peptide.id %></td> 
    <td><%= gene_links(@peptide.genes) rescue 'Error'%></td> 
    <td><%= @peptide.submitter.name rescue "" %></td> 
    <td <%= sorttable_customkey_from_date(@peptide.created_at)%> > 
     <%= @peptide.created_at.strftime("%b %d %Y") rescue "Unknown"%> 
    </td> 
    <td <%= sorttable_customkey_from_date(@peptide.updated_at)%> > 
     <%= @peptide.updated_at.strftime("%b %d %Y") rescue "Unknown"%> 
    </td> 
    <td><%= @peptide.sequence%></td> 
    <td><%= @peptide.modifications%></td> 
    <td><%= @peptide.vendor%></td> 
     <%= buttons() %> 
</tr> 
<%end%> 

    <%= will_paginate @peptides %> 
</table> 
<br> 
<%= submit_tag "Create Spreadsheet"%> 

По умолчанию список группируется по статусу упорядоченным.

Однако, когда я выбираю какой-либо другой статус и отправлю форму, ссылки на страницы разбивают меня на статус по умолчанию. Пожалуйста, помогите мне решить эту проблему. Благодаря

+1

Вы можете разместить свой контроллер и/или формы на pastebin и ссылку на ваш вопрос – Papasmile

+0

привет @Papasmile это хорошо? –

+0

Если вы можете вставить в полный вид, я буду обновлять свой ответ, чтобы попытаться помочь. – CDub

ответ

0

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

Update

Попробуйте добавить Params в Ваша ссылка статус:

<%= link_to @peptide.name, peptide_path(@peptide, params), :action => :report, :id => @peptide.id %>

documentation здесь.

+0

Я добавил вид сейчас. –

+0

Это не работает, неправильное количество аргументов. Не могли бы вы объяснить решение немного больше. Может быть, я просто смущен –

+0

Да, у меня был плохой код. Первый аргумент для 'link_to' должен быть разделен на текст ссылки и на ссылку, последняя может обрабатывать' params'. – CDub

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