i'm going to be trying out the solutions below when i get back to working 
on the project. 

On Sunday, September 8, 2013 10:34:59 AM UTC-7, Hillary Hueter wrote:
>
> 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