У меня есть две модели, и я пытаюсь интегрировать его, я могу принести сформировать другую модель, проблема в том, в то время как представление, идентификатор обновляется обнулитьрельсы has_one принадлежит погрешность формы представления
orbituary модель:
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
orbituary контроллер:
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
конец
в orbituary сайтов показать вид:
<% if @orbituarysite.notice_display.nil? %>
<%= render 'notice_displays/form' , :remote => true %>
<% end %>
в то время как я отправить форму я получаю следующую проблему, т.е. aftter представления я перенаправлять его на orbituary страницы сайтов, так что я получаю это сервер ,
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)
как изменить это, потому что получить ложные в
<% if @orbituarysite.notice_display.nil? %>
но в консоли я получаю истинное, когда она равна нулю, и ложно, когда есть содержание
Пожалуйста, помогите мне решить эту
потому что вы создали 'notice_display' в действии show, ваш' notice_display' никогда не будет ник, поэтому '@ orbituarysite.notice_display.nil?' В вашем представлении всегда будет возвращать false. – Bigxiang
Сделайте себе одолжение и [примите некоторые ответы] (http://stackoverflow.com/users/1439147/anbazhagan-p?tab=questions&sort=newest). – zeantsoi