I'm glad it worked :).
Regards,
Ignacio
El 22/05/13 13:44, Ronny Hanssen escribió:
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
<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
<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
<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>
> <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>
> <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>
> <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
<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].
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.
--
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.