所以,我不确定为什么,但是当我在文本框中输入一些文本然后刷新页面时,文本没有保存。我正在使用正确的DB字段(描述),所以我不确定出了什么问题。
_photo.html.erb
<%= best_in_place photo, :description, type: :textarea, nil: 'Enter a Caption' %>
照片架构
create_table "photos", force: true do |t|
t.string "file"
t.integer "attachable_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "attachable_type"
t.string "title"
t.text "description"
t.boolean "profile_photo", default: false
end
add_index "photos", ["attachable_id"], name: "index_photos_on_attachable_id", using: :btree
add_index "photos", ["attachable_type"], name: "index_photos_on_attachable_type", using: :btree
为什么不保存?
干杯!
更新
show.js
$('.modal-title').html('<%= @photo.title %>');
$('.modal-body').html('<%= j(render "modal_photo", photo: @photo) %>');
$('#myModal').modal();
photos_controller(剪辑):
class PhotosController < ApplicationController
before_filter :authenticate_user!
def show
@photo = current_user.photos.find(params[:id])
end
答案 0 :(得分:0)
这里需要保存对象而不是单值属性。
替换它<%= best_in_place @photo, :description, type: :input %>
请参阅此回答有助于:best_in_place not saving
答案 1 :(得分:0)
我认为您的问题可能出在控制器中:
class PhotosController < ApplicationController
respond_to :html, :json # Whatever formats you want to respond
# Other actions...
def update
@photo = Photo.find(params[:id])
respond_to do |format|
if @photo.update_attributes(params[:photo])
format.html { # Whatever you want to do... }
format.json { respond_with_bip(@photo) }
else
format.html { # Whatever you want to do... }
format.json { respond_with_bip(@photo) }
end
end
end
最佳位置提供了一种应该在控制器中使用的实用程序方法,以便使用:json
格式提供javascript端所期望的响应。 More info in the gem's README