Пример,Rails link_to и f.submit параметры
Я сделал помост проект, как,
rails generate scaffold Post name:string title:string content:text
и если я иду в
localhost:3000/posts
Это показывает вид, как это,
<h1>Listing posts</h1>
<table>
<tr>
<th>Name</th>
<th>Title</th>
<th>Content</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @posts.each do |post| %>
<tr>
<td><%= post.name %></td>
<td><%= post.title %></td>
<td><%= post.content %></td>
<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Post', new_post_path %>
Мой вопрос о link_to метод второй параметр.
Если я вижу код html, он преобразует код, подобный этому, в тег.
<a href="/posts/1">Show</a>
<a href="/posts/1/edit">Edit</a>
<a href="/posts/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>
<a href="/posts/new">New Post</a>
Как он анализирует HTML-код?
Я не понимаю параметры, такие как post, edit_post_path, такие вещи.
Второй вопрос.
Когда пользователь хочет создать новое сообщение, он переходит к этому виду.
<%= form_for(@post) do |f| %>
<% if @post.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :content %><br />
<%= f.text_area :content %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
, и если я посмотрю на тег формы, это будет выглядеть так.
<form accept-charset="UTF-8" action="/posts" class="new_post" id="new_post" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="5d3i4uFDrhq+qenAWLbBxWqaA6rJAKrPedVIO04NK6o="></div>
<div class="field">
<label for="post_name">Name</label><br>
<input id="post_name" name="post[name]" size="30" type="text">
</div>
<div class="field">
<label for="post_title">Title</label><br>
<input id="post_title" name="post[title]" size="30" type="text">
</div>
<div class="field">
<label for="post_content">Content</label><br>
<textarea cols="40" id="post_content" name="post[content]" rows="20"></textarea>
</div>
<div class="actions">
<input name="commit" type="submit" value="Create Post">
</div>
</form>
Мой вопрос в том, где установлен атрибут действия?
и как параметры передаются контроллеру?
В моем исследовании это вызывает метод create_controller posts_controller.
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render json: @post, status: :created, location: @post }
else
format.html { render action: "new" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
Если это так, если я хочу назвать этот метод. Разве это не должно быть сообщение/создание?
Man .... Rails так трудно для новичков, и апи док настолько неудобно :(
Если у вас есть несколько вопросов, пожалуйста, разместите их отдельно, а не в том же вопросе. –