how can I write a link?

29 views
Skip to first unread message

ahmet

unread,
May 7, 2013, 9:36:39 AM5/7/13
to pak...@googlegroups.com
hello, 

<a href="/posts/#{bindable.id}"> show a post </a> 
this is my link, but it is not working. How can I write link with pakyow-0,8,
It was very easy with pakyow-0,7.xx.

Wayne

unread,
May 7, 2013, 10:20:13 AM5/7/13
to pak...@googlegroups.com
Hey Ahmet,

To bind an href into a link I usually use a binder. I would create a post binder and add a method called show_link that looks something like this.

  scope(:post) {
    binding(:show_link) {
      {
        :href => "/show/#{bindable.id}"
      }
    }
  }

Then your markup would look like this:

 <a data-prop="show_link" href="#"> show a post </a> 

The link with the data-prop has to be inside a container with data-scope set to data-scope="post".  With those things set it should work.

~Wayne

Wayne

unread,
May 7, 2013, 10:23:13 AM5/7/13
to pak...@googlegroups.com
Minor update, I didn't bind the title in as the link text.

  scope(:post) {
    binding(:show_link) {
      {
        :href => "/show/#{bindable.id}",
        :content => bindable.title

Ahmet

unread,
May 7, 2013, 6:14:02 PM5/7/13
to pak...@googlegroups.com
Trying 1:
I create it like pakyow 0,7

lib
  |
 post_binder.rb
 ---------------------------
class PostBinder < Pakyow::Presenter::Binder
  scope(:post) {
    binding(:show_link) {
      {
          :href => "/show/#{bindable.id}"
      }
    }
  }
end 

It is giving me scope error.

Internal Server Error

undefined method `scope' for PostBinder:Class
WEBrick/1.3.1 (Ruby/2.0.0/2013-02-24) at localhost:3000


Trying 2:

in app.rb
--------------------
presenter do
      scope(:post) {
        restful(:post) # post references the group created when expanding the restful template

        #fn(:show_link) {
        #  #(:href => "/posts/show/#{bindable.id}")
        #  #content: bindable[:title],
        #  #href: router.group(:posts).path(:show, bindable)
        #}
      }

      binding {
        {
            content: bindable[:title],

            # the restful route for posts#show is available here
            # through the posts group created when expanding the
            # restful route template for posts
            href: router.group(:posts).path(:show, bindable)
        }
      }

    end

this is also giving errors.







2013/5/7 Wayne <waynes...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "Pakyow" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pakyow+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Wayne Schroer

unread,
May 7, 2013, 6:24:04 PM5/7/13
to pak...@googlegroups.com
I think your binding code in the bottom example will work if you put it inside the scope(:post) block.

Wayne Schroer

unread,
May 7, 2013, 6:27:25 PM5/7/13
to pak...@googlegroups.com
Sorry, it won't work as-is.  You will need to pass the name of the binding in.

scope(:post) {
        restful(:post) # post references the group created when expanding the restful template

        binding(:show_link) {
          {
            content: bindable[:title],
            href: router.group(:posts).path(:show, bindable)
          }
        }
 }

Ahmet

unread,
May 7, 2013, 7:05:52 PM5/7/13
to pak...@googlegroups.com
 app.rb

....
presenter do
      scope(:post) {
        restful(:post) # post references the group created when expanding the restful template

        binding(:show_link) {
          {
              content: bindable[:title],
              href: router.group(:posts).path(:show, bindable)
          }
        }
      }
    end
...

<a data-prop="show_link" href="#"> show a post </a>

nothing happen. It is not giving any link and also no problem. 
why?




2013/5/8 Wayne Schroer <waynes...@gmail.com>

Bryan Powell

unread,
May 8, 2013, 2:35:53 PM5/8/13
to pak...@googlegroups.com
Is the <a> tag inside of a scope named "post"?

Ahmet

unread,
May 8, 2013, 7:30:25 PM5/8/13
to pak...@googlegroups.com
This is my main.html
----------------------------------

<h3>inside of the posts/main.html</h3>

<div data-scope="post">
    <h4 data-prop="title">
        Title goes here.
    </h4>

    <p data-prop="body">
        Body goes here.
    </p>

</div>
<a href="/posts/new">Add a Post here  </a>

<a data-prop="show_link" href="#"> show a post </a>


It is out side of scope named "post"

when I change the code like this 

-----------------------------------------------------------
<h3>inside of the posts/main.html</h3>

<div data-scope="post">
    <h4 data-prop="title">
        Title goes here.
    </h4>

    <p data-prop="body">
        Body goes here.
    </p>
     <a data-prop="show_link" href="#"> show a post </a>
</div>
<a href="/posts/new">Add a Post here  </a>
---------------------------------------------------------------------

I am getting this errors.

undefined method `split' for nil:NilClass

/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/request.rb:68:in `split_url'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/route_lookup.rb:28:in `populate'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/route_lookup.rb:11:in `path'
/Users/ahmet/pakyoworks/dene08/app.rb:92:in `block (3 levels) in '
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/bindings.rb:51:in `instance_exec'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/bindings.rb:51:in `value_for_prop'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view.rb:489:in `block (2 levels) in bind_data_to_scope'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view.rb:482:in `catch'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view.rb:482:in `block in bind_data_to_scope'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view.rb:481:in `each'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view.rb:481:in `bind_data_to_scope'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view.rb:297:in `bind'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:183:in `block in bind'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:130:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:130:in `block in for'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:11:in `block in each'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:11:in `each'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:11:in `each'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:128:in `each_with_index'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:128:in `for'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:182:in `bind'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-presenter/lib/presenter/view_collection.rb:194:in `apply'
/Users/ahmet/pakyoworks/dene08/app.rb:44:in `block (3 levels) in '
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:81:in `instance_exec'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:81:in `block in call_fns'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:81:in `each'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:81:in `call_fns'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:126:in `block in trampoline'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:125:in `catch'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:125:in `trampoline'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/router.rb:38:in `route!'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/router.rb:10:in `block in call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/router.rb:9:in `catch'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/router.rb:9:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/presenter.rb:15:in `block in call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/presenter.rb:14:in `catch'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/presenter.rb:14:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/reloader.rb:10:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/logger.rb:14:in `block (2 levels) in call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/logger.rb:13:in `catch'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/logger.rb:13:in `block in call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/logger.rb:32:in `time'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/logger.rb:10:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/static.rb:16:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/bundler/gems/pakyow-627c0a6e5242/pakyow-core/lib/core/middleware/setup.rb:11:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:138:in `call'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/Users/ahmet/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'


2013/5/9 Bryan Powell <br...@metabahn.com>

Wayne

unread,
May 10, 2013, 10:27:29 AM5/10/13
to pak...@googlegroups.com
Hey Ahmet,

This one is hard to debug.  You don't happen to have this in a github repo or something do you?  It would be really helpful to be able to see all the code in context to help debug this issue.

~Wayne

Ahmet

unread,
May 10, 2013, 10:54:32 AM5/10/13
to pak...@googlegroups.com
I put on github.
this is URL
thanks.


2013/5/10 Wayne <waynes...@gmail.com>

ahmet

unread,
Jun 24, 2013, 10:38:38 PM6/24/13
to pak...@googlegroups.com
I am still waiting the answer, or please somebody provide any simple ToDo application in pakyow-08.

7 Mayıs 2013 Salı 22:36:39 UTC+9 tarihinde ahmet yazdı:
Reply all
Reply to author
Forward
0 new messages