Вопрос по ruby-on-rails, ruby – Выбор Ruby on Rails Collection - как правильно выбрать правильное значение?

7

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

<%= l.collection_select(:category_id, @category, :id, :name, options = {},
                        html_options = {:size => 10, :selected => @listing.category_id.to_s})%>

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

View:Error: User Rate Limit Exceeded
Controller:

def categories #Step 2
@listing = Listing.find(params[:listing_id])
@seller = Seller.find(@listing.seller_id)
@category = Category.find(:all)
@listing.complete = "step1"

respond_to do |format|
  if @listing.update_attributes(params[:listing])
    flash[:notice] = 'Step one succesful. Item saved.'
    format.html #categories.html.erb
end
end
end
Error: User Rate Limit Exceeded Simone Carletti
Error: User Rate Limit Exceededstackoverflow.com/questions/1018836/… John Topley

Ваш Ответ

2   ответа
12

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

@post = Post.new

<% form_for @post do |f| %>
  <!-- no option selected -->
  <%= f.collection_select :category_id, Category.all, :id, :name, :prompt => true  %>
<% end %>

@post = Post.new(:category_id => 5)

<% form_for @post do |f| %>
  <!-- option with id == 5 is selected -->
  <%= f.collection_select :category_id, Category.all, :id, :name, :prompt => true  %>
<% end %>

EDIT:

Error: User Rate Limit Exceeded

def categories #Step 2
  @listing = Listing.find(params[:listing_id])
  @seller = Seller.find(@listing.seller_id)
  @categories = Category.find(:all)
  @listing.complete = "step1"

  respond_to do |format|
    if @listing.update_attributes(params[:listing])
      flash[:notice] = 'Step one succesful. Item saved.'
      format.html #categories.html.erb
    end
  end
end

<% form_for @listing do |f| %>
  <%= f.collection_select :category_id, @categories, :id, :name, :prompt => true %>
<% end %>

Error: User Rate Limit Exceeded

EDIT 2:

class Category
  def id_as_string
    id.to_s
  end
end

<%= f.collection_select :category_id, Category.all, :id_as_string, :name, :prompt => true  %>
Привет weppos, спасибо за быстрый и хороший ответ. Я ожидал, что collection_select будет вести себя так, но, к сожалению, в моем случае это не так. Всякий раз, когда я вставляю @ перечисление.category_id = 2 в свой контроллер, я получаю предварительно выбранное поле так, как я хочу. Несмотря на то, что я получил @listing = Listing.find ... на основе параметров и значение действительно установлено в БД, это не работает. Я потерян, если честно. Michael Schmitz
Не могли бы вы опубликовать полный пример, включая действия контроллера и представление?
Это произошло три года спустя, и я только что вернулся, чтобы снова увидеть ответ. Это просто хорошо для меня. Спасибо, Симона! Michael Schmitz
1

Error: User Rate Limit Exceeded

if @listing.category_id != "" 
@listing.category_id = @listing.category_id.to_i
end

Error: User Rate Limit Exceeded

Проверьте мой РЕДАКТИРОВАТЬ 2.

Похожие вопросы