Я довольно простой с Rails, и я пытаюсь сохранить изображение из URL-адреса, после поиска в Интернете я нашел драгоценный камень Carrierwave, который я установил. Но я не уверен, как действовать дальше. Я также использую Backbone (что я также довольно простой).Сохраните изображение с URL-адреса с помощью Carrierwave
До сих пор я создал приложение, в котором пользователи могут вводить moviename в поле ввода, которое затем показывает список результатов.
Мой moviesearch вид,
events:
"keyup input": "doSearch"
doSearch: (e) ->
@collection.setQuery $(e.currentTarget).val()
@collection.fetch()
$('.autocomplete-results').show()
Когда функция doSearch
увольняют она идет в коллекцию moviesearch,
class Movieseat.Collections.Moviesearch extends Backbone.Collection
url: -> "http://api.themoviedb.org/3/search/movie?api_key=a8f7039633f2065942cd8a28d7cadad4&query=#{@query}"
setQuery: (q) ->
@query = q
return
parse: (response) ->
return response.results
Это приводит к JSON-файла, как это,
http://api.themoviedb.org/3/search/movie?api_key=a8f7039633f2065942cd8a28d7cadad4&query=star%20war
Мой поисковый просмотр затем отображает просмотр фильмов в море rchresult шаблон
template: JST['movieseats/searchresult']
initialize: ->
@collection.on('add', @render, this)
return
render: ->
$(@el).html(@template(movie: @collection))
this
Шаблон SearchResult,
<% for movie in @movie.models : %>
<li>
<img src="http://image.tmdb.org/t/p/w500/<%= movie.get('poster_path')%>"></img>
<span class="movie-title"><%= movie.get('title') %></span>
<p class="releaste_date"><%= movie.get('release_date') %></p>
<p class="addmovie">Add movie</p>
</li>
<% end %>
Это все Backbone. Следующий шаг - хранить данные. Функция addEntry
сохраняет переменную movie_title
моей модели Rails.
addEntry: (e) ->
movie_title = $(e.target).parent().find('.movie-title').text()
@collection.create title: movie_title
Эта функция находит текст в .movie-title
в этом шаблоне,
<% for movie in @movie.models : %>
<li>
<img src="http://image.tmdb.org/t/p/w500/<%= movie.get('poster_path')%>"></img>
<span class="movie-title"><%= movie.get('title') %></span>
<p class="releaste_date"><%= movie.get('release_date') %></p>
<p class="addmovie">Add movie</p>
</li>
<% end %>
У меня есть контроллер рельсы под названием movies_controller
. Это имеет следующее определение создать
def create
@movie = Movie.new(movie_params)
@user = current_user
user_id = @user[:id]
@movie[:user_id] = user_id
respond_to do |format|
if @movie.save
format.html { redirect_to @movie, notice: 'Movie was successfully created.' }
format.json { render json: @movie, status: :created, location: @movie }
else
format.html { render action: "new" }
format.json { render json: @movie.errors, status: :unprocessable_entity }
end
end
end
Как вы можете видеть, у меня есть <img src="http://image.tmdb.org/t/p/w500/<%= movie.get('poster_path')%>"></img>
Это изображение, которое я хотел бы сохранить в моей модели Rails.
Как это исходит? Я нашел следующий post и этот код,
uploader = ImageUploader.new
uploader.download! some_remote_url
uploader.store!
Но в этом посте нет никакой документации размещена таким образом, я не знаю, как реализовать этот код в моем проекте. Также я просмотрел документацию на странице Git, но мне трудно найти то, что мне нужно сделать.
Документация на самом деле [очень хорошо] (https://github.com/carrierwaveuploader/carrierwave) –
Обновлен вопрос для лучшего понимания. –
У вас есть пользователь, установленный и установленный на вашей модели «Кино»? –