2013-04-12 3 views
0

Я пытаюсь получить идентификатор модели с именем «gnib» и отправить ее в форме в скрытом поле, чтобы позволить пользователю эффективно переустанавливать «gnib» при нажатии кнопка отправки, прикрепленная к каждому gnib. Однако, когда я нажимаю кнопку, я получаю ошибку:Rails: извлечение идентификатора модели из базы данных

ActiveRecord::Recordnotfound in Sharescontroller#create 
Couldn't find Gnib with id= 

Я был бы очень признателен, если кто-то может помочь мне решить эту проблему.

GNIB модель

attr_accessible :title, :image, :content 
mount_uploader :image, ImagesUploader 
belongs_to :user 
validates :content, presence: true, length: { maximum: 80 } 
validates :user_id, presence: true 
default_scope order: 'gnibs.created_at DESC' 
has_many :reverse_shares, foreign_key: "regnib_id", class_name: "Share", dependent:  :destroy 
has_many :regnibbers, through: :reverse_shares 

В моей модели пользователя у меня есть:

модель пользователя

has_many :gnibs, dependent: :destroy 
has_many :shares, foreign_key: "regnibber_id", dependent: :destroy 
has_many :regnibs, through: :shares 

Я использовал модель присоединиться под названием "Share", чтобы облегчить REPOST или "regnib".

Поделиться модель

attr_accessible :regnib_id 
belongs_to :regnibber, class_name: "User" 
belongs_to :regnib, class_name: "Gnib" 
validates :regnibber_id, presence: true 
validates :regnib_id, presence: true 

В контроллередоля у меня есть:

def create 
@gnib = Gnib.find(params[:share][:regnib_id]) 
current_user.regnib!(@gnib) 
redirect_to @gnib 
end 

В контроллере GNIB у меня есть:

def create 
@gnib = current_user.gnibs.build(params[:gnib]) 
end 

В контроллере пользователя под функцией шоу у меня есть:

@gnib = current_user.gnibs.build(params[:gnib]) if signed_in? 

частичная для оказания gnibs находится в пользовательском шоу-страницы и выглядит следующим образом:

<li> 
<span class="Title"><%= gnib.title %></span> 
<span class="Image"><%= image_tag gnib.image_url(:thumb) %></span> 
<span class="content"><%= gnib.content %></span> 
<span class="timestamp"> 
Posted <%= time_ago_in_words(gnib.created_at) %> ago. 
</span> 
<%= render 'regnib_form' %> 
</li> 

While частично для regnib вид:

<% unless current_user?(@user) %> 
<div id="regnib_form"> 
<% if current_user.regnibbing?(@gnib) %> 
<% else %> 
<%= form_for(current_user.shares.build(regnib_id: @gnib.id)) do |f| %> 
<div><%= f.hidden_field :regnib_id %></div> 
<%= f.submit "Regnib", class: "btn btn-large btn-primary" %> 
<% end %> 
<h4> Regnibs <%= @gnib.regnibbers.count %></h4> 
<% end %> 
</div> 
<% end %> 

ответ

0
<div> 
    <%= f.hidden_field :regnib_id %> 
</div> 

должно быть:

<div> 
    <%= f.hidden_field :regnib_id , :value=> @gnib.id %> 
</div> 
Смежные вопросы