2016-12-18 1 views
0

Учитывая этот paramters:Rails: Как перебрать параметры после запроса

{ 
    "items"=>{"id"=>"", "id"=>"", "id"=>""} 
} 

Как бы я идти о назначении содержания для каждого элемента в рельсах?

Это то, что я пробовал:

params[:items].each do |i| 
     item = Item.find(i) 
      @content = params[:s] 
     end 
    end 

Это, очевидно, не может найти какое-либо значение для params[:s], так @content это равняется nil.

У меня нет абсолютно никакой идеи о том, как получить это значение. Я ценю каждый ответ. Спасибо!

+0

Этот вопрос мне кажется непонятным. Что именно вы хотите сделать ?! – mokayode

+0

Как ваши параметры выглядят точно? Если вы используете 3-х раз один и тот же ключ в Hash, последний будет перезаписывать остальные: '{" id "=>" a "," id "=>" b "," id "=>" c "}' это просто '{" id "=>" c "}'. –

ответ

0

Посмотрите документацию для класса Hash, в частности метод each. Есть два параметра в блоке, ключ и значение. Таким образом, добавив, что второй параметр позволит вам получить это значение:

params[:items].each do |id, value| 
    # You can access the value for each ID 
    # with the variable 'value' while in the block 
end 

Я не уверен, почему вы устанавливаете @content неоднократно. Это одна и та же переменная во всем скрипте; вы пытаетесь установить атрибут content на каждом item? Если это так, вам просто нужно сказать item.content = value (и, вероятно, в какой-то момент сохранить item, если вы хотите, чтобы он сохранялся в базе данных). И вам не нужно было бы помещать это в блок для Item.find; просто поместите его на следующую строку (строки) внутри внешнего блока. (Если вам нужен блок для Item.find, вы, кажется, пропустите do на этой линии.)

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