2017.07 «  - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - » 2017.09
TOP > 掲示板を作ってみる・その11【レス用のビューファイルを作成】

 ← 掲示板を作ってみる・その12【ruby-gettext で日本語化】 | TOP | 掲示板を作ってみる・その10【スレッド用のビューファイルを作成】

スポンサーサイト 

--年--月--日 (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


【広告】

[--.--.--(--) --:--] スポンサー広告 | Trackback(-) | Comment(-)
↑TOPへ

掲示板を作ってみる・その11【レス用のビューファイルを作成】 

2008年08月11日 ()

掲示板を作ってみる・その1【何を作るの?】
掲示板を作ってみる・その2【モデルを作る パート1】
掲示板を作ってみる・その3【モデルを作る パート2】
掲示板を作ってみる・その4【ルーティングを考える】
掲示板を作ってみる・その5【コントローラを生成】
掲示板を作ってみる・その6【ヘルパを作る】
掲示板を作ってみる・その7【スレッド用コントローラを編集】
掲示板を作ってみる・その8【レス用コントローラを編集】
掲示板を作ってみる・その9【レイアウトファイルとスタイルシートファイルを作成】
掲示板を作ってみる・その10【スレッド用のビューファイルを作成】
掲示板を作ってみる・その11【レス用のビューファイルを作成】
掲示板を作ってみる・その12【ruby-gettext で日本語化】




レス用に view ファイルを作ります。

ボンボンと2つ立て続けに作ります。

app/views/post/list.html.erb

<%= link_to '掲示板に戻る', :controller => 'topic', :action => 'list' %>
<%= link_to '全部', :range => nil %>
<%= link_to '1-', :range => '-100' %>
<%= link_to '最新50', :range => 'l50' %>
<br>

<hr style="border-width: 0pt; background-color: rgb(136, 136, 136); color: rgb(136, 136, 136); height: 1px; position: relative; top
: -0.4em;">
<div style="margin: -0.5em 0pt 0pt; color: red; font-size: larger; font-weight: normal;">
<%= h(@topic.title) %>
</div>
<br>

<dl>
<% @posts.each do |p| %>
<dt>
<%= h(p.res_no) %> :
<% unless p.email.blank? %>
<%= mail_to p.email, '<b>' + h(p.name) + '</b>' %>
<% else %>
<font color="green"><b>
<%= h(p.name) %>
</b></font>
<% end %>
:
<%= h(date_format(p.created_at)) %>
ID:<%= h(generate_id(p.ip_address, p.created_at)) %><br>
</dt>
<dd>
<%= add_link_to_content(p.content, p.topic.id) %><br>
<br>
</dd>
<% end %>

<% if @topic_max_res_no >= MAX_POSTS %>
<dt>
このスレッドは1000を超えました。<br>
もう書けないので、新しいスレッドを立ててくださいです。。。<br>
</dt>
<% end %>
</dl>
<hr>
<center>
<%= link_to '新着レスの表示', :range => (@res_no_next-1).to_s + 'n-' %><br>
</center>
<hr>
<%= link_to '掲示板に戻る', :controller => 'topic', :action => 'list' %>
<%= link_to '全部', :range => nil %>
<%= link_to '前100', :range => '-' + @res_no_prev.to_s %>
<%= link_to '次100', :range => @res_no_next.to_s + '-' %>
<%= link_to '最新50', :range => 'l50' %>
<br>

<% if @topic_max_res_no < MAX_POSTS %>
<% form_for :post, :url => {:action => 'confirm'} do |f| %>
<%= f.submit '書き込む' %>
名前:<%= f.text_field :name, {:size => 19} %>
E-mail(省略可):<%= f.text_field :email, {:size => 19} %><br>
<%= f.text_area :content, {:rows => 5, :cols => 70, :wrap => "off"} %>
<%= f.hidden_field :topic_id, {:value => @topic.id} %>
<% end %>
<% end %>




app/views/post/confirm.html.erb

<%= error_messages_for :post %>
書き込み
<br>
<% form_for :post, :url => {:action => 'create'} do |f| %>
名前:<%= h(@post.name) %><br>
E-mail:<%= h(@post.email) %><br>
<pre>内容:<%= h(@post.content) %>
</pre>
<br>
投稿確認<br>
・自分の投稿の責任は自分で取れよ<br>
・でも著作権は放棄しろ<br>
<br>
<%= f.submit '上記全てを承諾して書き込む' %><br>
<%= f.hidden_field :name, {:value => @post.name} %>
<%= f.hidden_field :email, {:value => @post.email} %>
<%= f.hidden_field :content, {:value => @post.content} %>
<%= f.hidden_field :topic_id, {:value => @post.topic_id} %>
<% end %>
<br>
変更する場合は戻るボタンで戻って書き直して下さい。




list.html.erb
一個一個バラして見ていけば、特にそんなに難しいこともやっている訳でもないので楽勝っすね。

confirm.html.erb
scaffold したときは、こういった確認画面って表示されないような気がしたので、ちょっと参考にしていただいたら光栄です。hidden_field の :value を HTML エスケープしてはいけない(Rails がエスケープしてくれる)というルールとかがあって、頭がこんがらがりそうです。


おしまい。次回へ続く


【広告】

[2008.08.11(Mon) 11:25] 掲示板アプリTrackback(0) | Comments(0)
↑TOPへ

 ← 掲示板を作ってみる・その12【ruby-gettext で日本語化】 | TOP | 掲示板を作ってみる・その10【スレッド用のビューファイルを作成】

COMMENT

COMMENT POST















管理者にだけ表示

 ← 掲示板を作ってみる・その12【ruby-gettext で日本語化】 | TOP | 掲示板を作ってみる・その10【スレッド用のビューファイルを作成】
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。