저는 Rails 4 앱을 보유하고 있으며 CarrierWave를 사용하여 URL에서 이미지를 가져 왔습니다. 내 form_for에서 url은 params에 잘 전달되지만 URL을 저장하지 못하는 것 같습니다. 마지막으로 Stamp
을 살펴본 결과 remote_image_url
은 nil
입니다. 나는 그것이 단순한 것이라고 확신하지만 문서는 꽤 비참하다.CarrierWave remote_image_url 저장하지 않음
그냥 확인하십시오. 양식의 f.file_field
을 사용하여 파일에서 이미지를 업로드 할 때 CarrierWave가 완벽하게 작동합니다.
stamp_uploader.rb
:
class Stamp < ActiveRecord::Base
mount_uploader :image, StampUploader
mount_uploader :remote_image_url, StampUploader
end
stamps_controller
:
def show
@stamp = Stamp.find(params[:id])
end
def new
@stamp = Stamp.new
end
def create
@stamp = Stamp.create(stamp_params)
if @stamp.save
flash[:success] = "Thanks for your submission!"
redirect_to root_path
else
render :new
end
end
private
def stamp_params
params.require(:stamp).permit(:image, :remote_image_url)
end
new.html.erb
:
<%= form_for @stamp do |f| %>
<%= image_tag(current_user.image) %>
<%= f.label :remote_image_url, "Upload Image" %>
<%= f.text_field :remote_image_url, value: current_user.image %>
<%= f.submit %>
<% end %>
여기
내 코드입니다 55,413,:create_table "stamps", force: :cascade do |t|
t.string "image"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "remote_avatar_url"
t.string "remote_image_url"
end
PARAMS는 :
=> {"utf8"=>"✓",
"authenticity_token"=>"rA8KaI+bG5ygldeQC2n00z3BuEfiA0xO4tukUUL3tvG19G7WQCuMMqwzwWzWSMbKlT+2W5KsJYF4Q/lXg9OHeA==",
"stamp"=>{"remote_image_url"=>"https://graph.facebook.com/10157057736060574/picture?width=1000&height=1000"},
"commit"=>"Create Stamp",
"controller"=>"stamps",
"action"=>"create"}
컨트롤러가 (레일 콘솔에서)받는 매개 변수를 게시 할 수 있습니까? – RichardAE
물론, 주요 질문에 추가 – BillyBib