0

У меня есть form_tag настроить следующим образом:рендеринга Rails из тега

<% Rating.find(:all, :conditions => ["recommendation_id = ? and rating_set = ? and product_id = ?", rec.id, params[:rating_set_id], params[:product_id]]).each do |rate| %> 
      <%= text_field_tag "recommendation_ratings[#{rec.id}][notes]", "#{rate.notes}", :id => "rec_note_text", :placeholder => 'Enter Notes..'%> 
       <% end %> 

Это работает, когда условия находят выполнены, однако до того, как форма отправлена, recommendation_id не сохраняется в БД, так что find не возвращает ничего, и это приводит к тому, что мой тег формы не отображается. Это проявляется только при выполнении всех условий поиска. Как я могу визуализировать свою форму независимо от того, выполняется ли условие поиска?

+0

Если вы хотите визуализировать форму, даже если ваши условия не были выполнены, то для чего нужны условия? Ты собирался показать это за ноль? –

+0

Я думаю, ваша проблема в том, что 'text_field_tag' не вызывается на итерации, не так ли? – unnu

+0

плюс вы делаете рекомендательные_оценки [# {rec.id}] [notes] "," # {rate.notes} " Когда ваши условия не были выполнены, у вас есть объект rec && rate? –

ответ

1

Вы неправильно используете представление/контроллер.

Вы должны определить новый парциальное под названием _rating.html.erb

там ваши form_tag (замените с действительными значениями, я просто положить в качестве примера)

<%= text_field_tag "recommendation_ratings[#{id}][notes]", "#{notes}", :id => "rec_note_text", :placeholder => 'Enter Notes..'%> 

тогда, где бы вы рендеринг, что список рейтингов, положить, например, в рейтингах/show.html.erb

<%= render @ratings%> 

и Ratings_controller вы должны поставить:

define show 
    @ratings = Ratings.find_all_with_conditions 
end 

и в модели Rating.rb вы должны поставить:

define self.find_all_with_conditions 
    Rating..find(:all, :conditions => []) #put your logics here for finding all 
end 

Я просто написал как пример того, как следует организовать его, и у меня есть не смотрел, чтобы поставить все допустимые параметры, я поставил вам просто посмотреть, как организовать просмотр.

Надеюсь, это поможет.

Смежные вопросы