file_column i tablica z modelami

Tworze aplikacje generujaca ankiety. Jedna z opcji ma byc dodawanie obrazkow do odpowiedzi. Sam file_colum dziala poprawnie gdyz wykorzystuje go do uploadowania avatarow uzytkownikow. Problem pojawia sie, gdy mam tablice odpowiedzi. W kontrolerze wyglada to nastepujaco:

@questions = Question.find_all_by_question_form_id(params[:qf_id]) @answers = [] @questions.each_with_index { |item,index| @answers[index] = Answer.find_all_by_question_id(item.id)}
Natomiast w widoku:

[code]<%if @questions.blank?%>
<%=t :no_questions%>
<%else%>

<%@questions.each_with_index do |item, index|%>
<% form_for "questions[#{index.to_s}]",item do |z| %>

<%=(t :question) + " " + (index + 1).to_s%>

<%=t :question_title %>(max 150)<%= z.text_field :question_text %>

<%=t :question_type %>:<%= z.collection_select(:type, @question_types, :name, :name) %>

<%= hidden_field_tag 'q_id', item.id %> <%= hidden_field_tag "qf_id" , params[:qf_id]%> <%= hidden_field_tag "q_arr_id", index %> <%= submit_tag "del_q" %> <%= submit_tag "save_q" %> <% end %>
<%@index = index%> <%@item = item%> <%if @answers[index].blank?%> <%=t :no_answers %> <%else%> <%@f = @answers[@index]%> <%@answers[@index].each_with_index do |im, ix|%>
          <%@inx = ix%>
          <%@im = im%>
          <%instance_variable_set("@ans_" + @inx.to_s, @im)%>
          <% form_for  "answers[#{@index.to_s}][#{ix}]" ,im do |x| %>
            <p><%=(t :answer) + " " + (ix + 1).to_s%></p>
            <p><label for="a_<%= @index.to_s %>_<%= ix.to_s %>_answer_text">

<%=t :answer_title %>(max 100)<%= x.text_field :answer_text %>


<%=t :picture%>(max 200kb, [gif], [jpg], [png])
<%= file_column_field “ans[#{@inx}]” , “picture”%>

            <%= hidden_field_tag "q_id", @item.id %>
            <%= hidden_field_tag 'a_id', im.id %>
            <%= hidden_field_tag "qf_id" , params[:qf_id]%>
            <%= hidden_field_tag "a_arr_id_1", @index %>
            <%= hidden_field_tag "a_arr_id_2", ix %>
            <%= submit_tag "del_a" %>
            <%= submit_tag "save_a" %>
          <%end%>
        <%end%>
      <%end%>
      <% form_tag :action => 'add_step_2', :id => params[:id] do %>
        <%= hidden_field_tag "qf_id" , params[:qf_id]%>
        <%= hidden_field_tag "q_id", @item.id %>
        <%= submit_tag "add_a" %>
      <%end%>
    </td>
  </tr>
<%end%>
<%end%>

<% form_tag :action => ‘add_step_2’, :id => params[:id] do %>
<%= hidden_field_tag “qf_id” , params[:qf_id]%>
<%= submit_tag “add_q” %>
<%end%>[/code]
Przy requescie sprawdzam sobie w prams[:commit] ktore dzialanie zostalo wybranei i wykonywana jest akcja. Wszystko dziala, gdy nie ma linii kodu z wywolaniem helpera od file_column, gdy jest ona umieszczona, otrzymuje blad “Trying to access file_column, but primary key got lost.” Czy moze ktos wie w czym tkwi blad?

Zamień file column na paperclip lub attachment fu (najlepiej paperclip) - file nie jest już rozwijany, ostatnie commity są chyba sprzed roku.

Z tego co widze po przykladach to ten paperclip jest bardzo podobny do file_column jesli chodzi o uzycie i co najwazniejsze nie trzeba tworzyc nowego modelu :slight_smile: FC byl pierwszym pluginem do zdjec na ktory trafilem, dlatego uzylem go w swojej aplikacji. Ale widze ze jest calkiem fajna alternatywa :slight_smile: Dziekuje za podpowiedz :slight_smile: