Excellent Ignacio. That actually worked. It seems like the thing that fixed this was the rather odd symbol :'' last in the attr_accessible declaration.
Thanks :) On Tuesday, May 21, 2013 9:31:50 AM UTC+2, Ignacio Huerta wrote: > > Hi Ronny, > > Ok, now I get what's going on. Forms make a lot of permission checks > before being rendered. One of this checks must be failing, and thus the > page is blank: http://hobocentral.net/manual/faq/blank-form > > I have reproduced the problem in Hobo 2.0 and RailsSettings. When the > form tried to render, I can see in the log: > > permission denied; unable to render form > > Looking into the source code and using the "better_errors" gem to debug, > I've been able to trace it to the method "attribute_protected?" > (lib/hobo/model/permissions.rb). I've found out that while rendering a > edit Setting form, this is returning true when it should return false. > > As a workaround, in the model I have added an empty string to > attr_accessible: > > attr_accessible :var, :value, :thing_id, :thing_type, :'' > > This works with Hobo 2.0, but I suspect it's not going to help you with > Hobo 1.3, as I believe the attribute whitelisting is different with > Rails 3.0. It it doesn't work, you can try to debug the problem using > better_errors or a debugger. Alternatively, if you send me the app > through email I can try to find what's going on :). > > Regards, > Ignacio > > El 21/05/13 04:18, Ronny Hanssen escribi�: > > Hi Ignacio, > > > > The edit-page is rendered, but it seems that it doesn't accept any of > > the fields as being editable, hence does not show them at all. I have > > tried setting the update_permitted?, and even the edit_permitted? and > > <field>_edit_permitted? variants > > ( > http://cookbook-1.3.hobocentral.net/manual/permissions#defining_edit_permission). > > > > However, since even the "edit"-link is missing I assume that Hobo > > somehow finds these records to be uneditable as a whole. > > > > There are a couple of things in the RailsSettings solution that I find > > very handy, caching and scope for getting values as well as defaults > > (both persisted and memory) on startup. Since this is basically a > > standard ActiveRecord with a few class-methods I would have thought that > > it would work fine. This is the major file in that gem: > > > https://github.com/huacnlee/rails-settings-cached/blob/master/lib/rails-settings/settings.rb > > > > > I was hoping that there were a small change that I just needed to do to > > make it work. Otherwise I guess I will have to write the input-fields > > myself, without any checks for editability, and override when saved to > > ignore the Hobo-permissions. Also, I wanted to use the opportunity to > > understand more of how the permission system in Hobo works - under the > hood. > > > > > > On Monday, May 20, 2013 11:43:39 PM UTC+2, Ignacio Huerta wrote: > > > > Hi Ronny, > > > > What do you mean with "I am not able to make the model editable"? > Does > > the form appear? It it does, what happens after you submit it? What > > does > > the log say? > > > > On the other hand, I've never used RailsSettings, so I don't know > > how it > > works. When I need to save application settings, I usually create a > > model called "options", with two fields "key" and "value" (hobo g > > resource option key:string value:string). Then I can do: > > > > Options.find_by_key("whatever") > > > > And I have the standard Hobo CRUD interface in /options. > > > > Regards, > > Ignacio > > > > El 20/05/13 19:53, Ronny Hanssen escribi�: > > > Hi all, > > > > > > Long time since I had any time to do Hobo related work. Nice to > > see how > > > this moves on. I am on Hobo 1.3, but I am hoping to move to 2.0 > > in not > > > too long. > > > > > > I am changing a current 1.3 app where I want to make some > > application > > > settings available. To do this I am trying to use > > > the RailsSettings::CachedSettings project > > > (https://github.com/huacnlee/rails-settings-cached > > <https://github.com/huacnlee/rails-settings-cached>). It kinda > works > > very > > > well. > > > > > > *The problem appears when I try to setup a user interface for > > changing > > > the settings. I can list the index page, I can show the fields, > > but I am > > > not able to make the model editable, no matter what i try. Anyone > > have a > > > clue on why?* > > > > > > Inspecting the generated form shows this: > > > > > > <def tag="form" for="Setting"> > > > <form merge param="default"> > > > <error-messages param/> > > > <field-list fields="" param/> > > > <div param="actions"> > > > <submit label="#{ht 'setting.actions.save', > > > :default=>['Save']}" param/><or-cancel param="cancel"/> > > > </div> > > > </form> > > > </def> > > > > > > > > > Other than that, the edit-page looks like this: > > > > > > <def tag="edit-page" for="Setting"> > > > <page merge title="#{ht 'setting.edit.title', > > :default=>['Edit > > > Setting'], :name => name(:no_wrapper => true) }"> > > > <body: class="edit-page setting" param/> > > > <content:> > > > <section param="content-header"> > > > <h2 param="heading"> > > > <ht key="setting.edit.heading" > > name="#{name(:no_wrapper > > > => true)}"> > > > Edit Setting > > > </ht> > > > </h2> > > > <delete-button label="#{ht 'setting.actions.delete', > > > :default=>['Remove This Setting']}" param/> > > > </section> > > > <section param="content-body"> > > > <form param/> > > > </section> > > > </content:> > > > </page> > > > </def> > > > > > > > > > The controller is quite standard for a subsite controller. > > > > > > class Admin::SettingsController < Admin::AdminSiteController > > > hobo_model_controller > > > auto_actions :all, :except => [:new, :create, :destroy] > > > end > > > > > > > > > The model looks like this: > > > > > > class Setting < RailsSettings::CachedSettings > > > hobo_model # Don't put anything above this > > > fields do > > > var :string, :null => false, :name => true > > > value :text, :primary_content => true > > > thing_id :integer > > > thing_type :string, :limit => 30 > > > timestamps > > > end > > > never_show :thing_id, :thing_type > > > # --- Permissions --- # > > > def create_permitted? > > > false > > > end > > > def update_permitted? > > > acting_user.administrator? > > > end > > > def destroy_permitted? > > > false > > > end > > > def view_permitted?(field) > > > true > > > end > > > end > > > > > > > > > > > > > > > -- > > > You received this message because you are subscribed to the > Google > > > Groups "Hobo Users" group. > > > To unsubscribe from this group and stop receiving emails from it, > > send > > > an email to [email protected] <javascript:>. > > > To post to this group, send email to [email protected] > > <javascript:>. > > > Visit this group at > > http://groups.google.com/group/hobousers?hl=en > > <http://groups.google.com/group/hobousers?hl=en>. > > > For more options, visit https://groups.google.com/groups/opt_out > > <https://groups.google.com/groups/opt_out>. > > > > > > > > > > -- > > Ignacio Huerta Arteche > > http://www.ihuerta.net > > Tel�fono: 0034 645 70 77 35 > > Email realizado con software libre > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Hobo Users" group. > > To unsubscribe from this group and stop receiving emails from it, send > > an email to [email protected] <javascript:>. > > To post to this group, send email to [email protected]<javascript:>. > > > Visit this group at http://groups.google.com/group/hobousers?hl=en. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > > -- > Ignacio Huerta Arteche > http://www.ihuerta.net > Tel�fono: 0034 645 70 77 35 > Email realizado con software libre > -- You received this message because you are subscribed to the Google Groups "Hobo Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/hobousers?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
