So i'm re-writing the trip management app I started in order to generalize 
it and make it something companies can subscribe to. I thought I should use 
rails 4, specifically because of the built in hstore support as there are 
some columns that would be easier to run calculations on if I was using 
hstore.
 
The way I setup the app, is the user defines a trip template that 
outlines line items but does not set the values of those line items until 
they create the trip. The implementation of the dynamic fields that I used 
comes from this http://railscasts.com/episodes/403-dynamic-forms railscast 
(it's only available to pro memebers), but the gist is that you use 
openstruct to create a hash of the dynamic fields and the values like 
below: 
        
       <%= f.hidden_field :trip_type_id %>
       
        <%= f.fields_for :options, OpenStruct.new(@trip.options) do 
|builder| %>
            <% @trip.trip_type.type_fields.where(:variable => false).each 
do |field| %>
                <%= render "type_fields", field: field, f: builder %>
            <% end %>
        <% end %>
 
Because of the way strong params work, I can't just submit a hash with 
arbitrary keys. And the fix suggested by the guide (
http://guides.rubyonrails.org/action_controller_overview.html#outside-the-scope-of-strong-parameters)
 
isn't working (my stackoverflow thread 
http://stackoverflow.com/questions/18437322/rails-4-0-and-dynamic-fields) 
so I still get the unpermitted attributes :options errors.
 
Here is how I've done the whitelist for the trips controller  
 
    def trip_params
        params.require(:trip).permit(:admin_name, :brochure_title, 
:description, :organized_by, :start_date, :end_date, :tour_type_id, 
:pay_by, :extension).tap do |whitelisted|
            whitelisted[:options] = params[:trip][:options]
      end
    end
 
So I have three questions: 

   1. What is wrong with the way i'm whitelisting the hash from the 
   OpenStruct object? 
   2. Is there another way of doing custom fields that's a more rails 4 
   (i.e. strong params friendly).
   3. Is it worth upgrading to 4.0 right now for an app that i'm basing off 
   of 3.2.12 code and instead just use the hstore extension gem?

-- 
-- 
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
--- 
You received this message because you are subscribed to the Google Groups "SD 
Ruby" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to