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.


Reply via email to