У меня есть следующий код (работает) для создания плейлистов:
Контроллер:
def create
@playlist = current_user.playlists.build(playlist_params)
if @playlist.save
redirect_to root_url
else
redirect_to root_url
end
end
def destroy
end
private
def playlist_params
params.require(:playlist).permit(:content, :name)
end
Вид:
<%= form_for(@user.playlists.create, remote:true) do |f| %>
<%= f.text_field :content, id: "playlistContent", :validate => true %>
<%= f.text_field :name, id: "playlistName", placeholder: "Enter Playlist Name", :validate => true %>
<%= f.submit "Save Playlist", id: "savePlaylist", remote:true %>
<% end %>
Теперь я хочу разрешить пользователю добавлять новую песню в плейлист content
. Я использую ввод, когда пользователь вводит имя списка воспроизведения, и после выбора имени он заполняет скрытое поле идентификатора идентификатором списка воспроизведения (в случае нескольких списков воспроизведения с одинаковым именем). При необходимости я включу сюда полный код typehead. Я пытаюсь обновить список воспроизведения в следующих строках (на основе этого более раннего вопроса: Проблемы с сохранением объекта в массиве, проблемы Ruby и Rails )
Моя основная проблема заключается в попытке передать идентификатор списка воспроизведения, который пользователь выбирает, в форму рельсов (рельсы являются серверной стороной и не имеют возможности клиентских методов, таких как jQuery, для получения значения текстового поля, как я понимаю). Методы update_attribute
и update_column
, похоже, ограничены прохождением через (name, value)
, и я не могу понять, как передать идентификатор, чтобы я мог передать новую песню в существующий массив плейлиста content
.
create
фактически создает запись. Вероятно, вы не хотите, чтобы это происходило в вашемform_for
. - person Michael Westbom   schedule 13.05.2014def update
в контроллере у меня есть@playlist = Playlist.find(params[:id])
, но я выбираю:id
на стороне клиента с вводом текста + JSON, и у меня возникают трудности с передачей идентификатора вform-for
. Я пробовал, чтобы скрытое поле предшествовало помощникуform_for
, чтобы я мог передать идентификатор в качестве аргумента, но получаю различные ошибки (например, 0 аргументов вместо 2 или не могу найти ID=id). - person Amir   schedule 13.05.2014