Мой общий пример использования:
У меня есть модель Listing , в которой много изображений .На странице сведений о списке перечислены все поля, которые могут быть обновлены встроенными (через ajax).
Я хочу иметь возможность использовать одно и то же представление для обновления списка и для создания нового списка .
Мой контроллер листинга выглядит следующим образом:
def detail
@listing = Listing.find(params[:id])
@image = Image.new #should this link somewhere else?
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @listing }
end
end
def create
# create a new listing and save it immediately. Assign it to guest, with a status of "draft"
@listing = Listing.new(:price_id => 1) # Default price id
# save it to db
# TODO add validation that it has to have a price ID, on record creation. So the view doesn't break.
@listing.save
@image = Image.new
# redirect_to "/listings/detail/@listing.id" #this didn't work
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @listing }
end
end
ПРОБЛЕМА Я использую партиал, который показывает ту же форму для представления создания и представления подробностей.
Это работает отлично, за исключением одного: когда я поднимаюhttp://0.0.0.0:3000/listings/detail/7, работает отлично.
Когда я поднимаюhttp://0.0.0.0:3000/listings/new, Я получаю следующую ошибку:
Отображение /Applications/MAMP/htdocs/rails_testing/feedbackd/app/views/listings/_edit_form.html.erb где поднята строка # 100:
Не найдено ни одного маршрута {: action => «show»,: controller => «images»} Извлеченный источник (около строки # 100):
97: <!-- Form for new images -->
98: <div class="span-20 append-bottom">
99: <!-- <%# form_for :image, @image, :url => image_path, :html => { :multipart => true } do |f| %> -->
100: <%= form_for @image, :url => image_path, :html => { :multipart => true } do |f| %>
101: <%= f.text_field :description %><br />
102: <%= f.file_field :photo %>
103: <%= submit_tag "Upload" %>
Я думаю, что проблема в том,: Когда я загружаю новое изображение (я использую Paperclip), для создания записи изображения требуется перечисление list_id.Так как list_id не передается с lists / new , он не может найти list_id.Как я могу пройти в удостоверение личности?Через редирект?Какой лучший способ решить это?Спасибо.