私はRubyonRailsを初めて使用します...オフィススペースの賃貸プロジェクトを作成しています。各リストには多くの画像があり、リストテーブルと画像テーブルがあります。
class Listing < ActiveRecord::Base
attr_accessible :agent_id, :description, :key_feature, :location_id, :size, :title, :office_type, :parking_ratio, :floors, :price, :nearest_metro, :distance, :image, :location_title, :display_order, :images_attributes
has_many:images, :dependent => :destroy
accepts_nested_attributes_for :image
end
class Image < ActiveRecord::Base
# attr_accessible :title, :body
attr_accessible :id, :image_url, :title_image, :listing_id, :created_at, :updated_at
belongs_to :listing
end
その特定のリストの画像の追加も要求されるように、リストのフォームを作成したいと思います。image_urlの空白のタブを作成し、その右側に小さな画像をアップロードする必要があります。その下に、新しい画像の追加を要求する必要があります...クリックすると、別のimage_urlタブなどがレンダリングされます...リストはリストテーブルに保存され、画像はそのリストを参照する画像テーブルに保存される必要があります。助けてください!!! 私は次のコードを使用してフォームを作成しました:-
<%=f.fields_for :images do |image| %>
<%= image.label :image %><br />
<%= image.text_field :image_url %><br /> <br />
<%= image.hidden_field :listing_id, :value => params[:id] %>
リスト用にDBに手動で挿入された画像が表示されるため、特定のリストを編集するときに表示されます。ただし、新しいリストを作成するように要求すると、画像タブが表示されることはありません。間違っています..助けてください!
そして、これが更新と作成のための私のリストコントローラーです
def create
@listing = Listing.new(params[:listing])
respond_to do |format|
if @listing.save
format.html { redirect_to ([:member, @listing]), notice: 'Listing was successfully created.' }
format.json { render json: @listing, status: :created, location: @listing }
else
format.html { render action: "new" }
format.json { render json: @listing.errors, status: :unprocessable_entity }
end
end
終わり
def update
@listing = Listing.find(params[:id])
respond_to do |format|
if (@listing.update_attributes(params[:listing]))
format.html { redirect_to ([:member, @listing]), notice: 'Listing was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @listing.errors, status: :unprocessable_entity }
end
end
終わり