0

私は 2 つのモデルを持っていて、それを統合しようとしています。別のモデルを作成できます。問題は送信中に、id が null に更新されていることです。

軌道モデル:

class Orbituarysite < ActiveRecord::Base
attr_accessible :birth_place, :death_place, :dob, :dod, :name, :living_place, :orbiturerimage, :salutation, :user_id
belongs_to :user
mount_uploader :orbiturerimage, OrbiturerUploader
has_one :notice_display
end

通知モデル

class NoticeDisplay < ActiveRecord::Base
  attr_accessible :message, :notice_type, :orbituarysite_id, :posted_by, :notice_event_places_attributes, :notice_event_contacts_attributes
  belongs_to :orbituarysite

end

軌道コントローラー:

def show
@orbituarysite = Orbituarysite.find(params[:id])
if @orbituarysite.notice_display.nil?
  @notice_display = @orbituarysite.build_notice_display
end
respond_to do |format|
  format.html # show.html.erb
  format.json { render json: @orbituarysite }
end

終わり

軌道サイトでビューを表示:

      <% if @orbituarysite.notice_display.nil?  %>
        <%= render 'notice_displays/form' , :remote => true %>
      <% end %>

フォームを送信しているときに、次の問題が発生します。つまり、送信後、軌道サイトのページにリダイレクトするため、サーバーでこれを取得します。

Started GET "/orbituarysites/1" for 127.0.0.1 at 2013-09-05 08:58:45 +0530
Processing by OrbituarysitesController#show as HTML
Parameters: {"id"=>"1"}
User Load (1.6ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
Orbituarysite Load (1.8ms)  SELECT "orbituarysites".* FROM "orbituarysites" WHERE  "orbituarysites"."id" = $1 LIMIT 1  [["id", "1"]]
NoticeDisplay Load (0.8ms)  SELECT "notice_displays".* FROM "notice_displays" WHERE "notice_displays"."orbituarysite_id" = 1 LIMIT 1
History Load (0.9ms)  SELECT "histories".* FROM "histories" WHERE "histories"."orbituarysite_id" = 1 LIMIT 1
(0.5ms)  BEGIN
(0.9ms)  UPDATE "histories" SET "orbituarysite_id" = NULL, "updated_at" = '2013-09-05 03:28:46.214455' WHERE "histories"."id" = 2
(25.0ms)  COMMIT
Rendered histories/_form.html.erb (125.2ms)
Rendered memories/_form.html.erb (9.1ms)
Rendered condolences/_form.html.erb (14.4ms)
Rendered orbiturer_share_images/_form.html.erb (6.2ms)
Rendered orbituarysites/show.html.erb within layouts/application (162.6ms)
Rendered orbituarysites/_form.html.erb (26.4ms)
Completed 200 OK in 944ms (Views: 504.5ms | ActiveRecord: 64.5ms)

でfalseになるため、これを変更する方法

     <% if @orbituarysite.notice_display.nil?  %>

しかし、コンソールでは、nil の場合は true になり、コンテンツがある場合は false になります

これを解決するのを手伝ってください

4

1 に答える 1